我在使用Nginx1.4.6時意識到必須設置gzip off;
才能夠使用php設置ETag標頭。
閱讀之後this post 我用廚師升級到了Nginx 1.10.1。我加入了資源庫的APT食譜與無法在nginx上設置etag標頭
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 destroy
和vagrant provision
--但我想我在這裏錯過了一些東西。
UPDATE:
我現在再次detroying該機還刪除.vagrant
文件夾後工作。但我不確定這是否是問題所在。 現在我可以設置ETag標題,並且請求包含If-None-Match
標題。但是我的Etags會被轉換成弱Etags,而nginx會在散列之前加上W/
。這是默認行爲嗎?以及如何設置強大的Etags?
更新:
好吧,因爲gzip上; etag很弱...有沒有辦法設置強啓用gzip的etag?
您是否看到nginx可執行文件實際上按預期升級?如果是這樣,請刪除「廚師」標籤,因爲這與廚師無關。 – coderanger
嗯,它必須 - 當我做'nginx -v'時,它告訴我'nginx版本:nginx/1.10.1'。 我也摧毀了vmbox,並且再次設置它來確保沒有舊nginx版本的殘留 - 但仍然是同樣的問題。 – FitzPatrick
嘗試殺死所有陳舊的工人,重新裝入後,他們可能仍然留戀一段時間,由於keepalives/websockets – Vasfed