无法在nginx上设置etag标头

时间:2016-08-24 13:04:05

标签: php nginx

当我意识到我必须设置gzip off;以便能够使用php设置ETag标头时,我正在使用Nginx1.4.6。 看完this post后 我使用厨师升级到Nginx 1.10.1。我使用

将存储库添加到apt cookbook中
apt_repository 'nginx-php' do
    uri          'ppa:nginx/stable'
    distribution node['lsb']['codename']
end  

然后用:

升级nginx
package 'nginx' do
   action :upgrade
end  

但是一切似乎与旧的nginx版本相同 只有我明确设置gzip off;我才能设置ETag标头。

此外,我没有在我的nginx.conf文件中看到etag on;指令,并且手动设置它没有任何效果。

可能我需要再次vagrant destroyvagrant provision - 但我想我在这里遗漏了一些东西。

更新
在再次销毁机器并删除.vagrant文件夹后,我现在正在使用它。但如果那就是问题,我就不会感到害羞。 现在我可以设置ETag标头,并且Request包含If-None-Match标头。但我的Etags被转换为弱Etags,nginx在哈希之前预先设置W/。这是默认行为吗?我怎样才能设置强大的Etags?

更新
好吧,因为gzip; etag很弱......有没有办法在启用gzip的情况下设置强大的etag?

1 个答案:

答案 0 :(得分:1)

回答我自己的问题。

使用

时设置了强大的Etag(使用php)

ob_start('ob_gzhandler')

发送标题之前