我将nginx设置为反向代理服务器,我想删除在备份服务器上设置的某些cookie(apache)
我的网站使用了很多我无法控制的Cookie(Expression Engine CMS,不要问我为什么)。我想删除其中的一些cookie(比如饼干A B和C)并保留其他一些(饼干D和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;
}
答案 0 :(得分:4)
虽然您已经提到过切换到Varnish来完成您的要求,但正确的答案是使用headers-more-nginx-module
,它基本上允许您和Varnish功能一样(以及更多)。