在nginx上不能设置标签头


can not set etag header on nginx

当我意识到我必须设置gzip off;才能使用php设置ETag头时,我正在使用Nginx1.4.6。
读完这篇文章后我使用chef升级到Nginx 1.10.1。我使用

将存储库添加到apt食谱中
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头。

我也没有看到etag on;指令在我的nginx.conf文件和手动设置它没有任何效果。

这可能是我只需要做一个vagrant destroyvagrant provision再次-但我认为我在这里错过了一些东西。

更新:
在再次摧毁机器并删除.vagrant文件夹后,我现在得到了它的工作。但我不确定这是否是问题所在。现在我可以设置ETag标头,请求包含If-None-Match标头。但是我的Etags被翻译成弱Etags, nginx在哈希之前添加了W/。这是默认行为吗?我如何设置强大的Etags ?

更新:
因为有gzip;标签很弱…

有没有办法设置一个强大的etag与gzip启用?

回答我自己的问题

在使用

时设置一个强Etag (php)

ob_start('ob_gzhandler')