10

我已将 nginx 设置为反向代理服务器,并且我想删除在支持服务器 (apache) 上设置的某些 cookie

我的网站使用了很多我无法控制的 cookie(Expression Engine CMS,不要问我为什么)。我想删除其中一些 cookie(比如说 cookie AB 和 C)并保留一些其他的(cookie 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;
}
4

1 回答 1

4

尽管您已经提到您切换到 Varnish 来完成您的要求,但正确的答案应该是使用headers-more-nginx-module基本上允许您与 Varnish 功能相同的功能(以及更多功能)。

于 2014-02-11T14:31:53.170 回答