2012-12-29 41 views
6

我已經nginx的設置爲反向代理服務器中刪除某些餅乾,我想刪除(Apache)的備份服務器上設置某些Cookie如何從nginx的響應

我的網站使用了大量的餅乾,我可以不控制(Expression Engine CMS,不要問我爲什麼)。我想刪除一些這些cookie(讓我們說cookie A和C),並保留其他cookie(cookies和E)。

之後,我將設置nginx以僅在請求沒有cookie的情況下響應緩存內容。

你有什麼想法如何做到這一點?由於

到目前爲止,我有我的配置:

proxy_cache_path /opt/nginx/cache levels=1:2 keys_zone=mycache:20m max_size=1G; 
proxy_temp_path /opt/nginx/tmp_cache/; 
proxy_ignore_headers Expires Cache-Control Set-Cookie; 
proxy_cache_use_stale error timeout invalid_header http_502; 
proxy_cache_bypass $cookie_nocache; 
proxy_no_cache $cookie_nocache; 

...

location/{ 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header Host $host; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_cache mycache; 
    proxy_cache_valid 200 302 6h; 
    proxy_cache_valid 404  1m; 
    proxy_pass http://x.x.x.x:8080; 
} 
+2

結束使用清漆和標題模塊。它有一個函數header.remove(),您可以在其中定位特定的Cookie。這裏是github上模塊的鏈接:https://github.com/varnish/libvmod-header –

回答

3

雖然你已經提到你切換到光油來完成你問什麼,正確答案會已經使用headers-more-nginx-module這基本上可以讓你像清漆功能一樣(以及更多)。

+0

從模塊docs,它似乎能夠做我最初想要的。 –

+0

太棒了,很高興我來自幫助。 – Fleshgrinder