当我意识到我必须设置gzip off;
才能使用php设置ETag头时,我正在使用Nginx1.4.6。
读完这篇文章后我使用chef升级到Nginx 1.10.1。我使用
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 destroy
和vagrant provision
再次-但我认为我在这里错过了一些东西。
更新:
在再次摧毁机器并删除.vagrant
文件夹后,我现在得到了它的工作。但我不确定这是否是问题所在。现在我可以设置ETag标头,请求包含If-None-Match
标头。但是我的Etags被翻译成弱Etags, nginx在哈希之前添加了W/
。这是默认行为吗?我如何设置强大的Etags ?
更新:
因为有gzip;标签很弱…
回答我自己的问题
在使用
时设置一个强Etag (php) ob_start('ob_gzhandler')