我对nginx相当陌生,我试图将其设置为反向代理服务器。 到目前为止,我有Apache 8080上的后端服务器和端口80上的Nginx。
我的网站使用了大量的Cookie,我无法控制…我正在使用Expression Engine CMS,它不允许禁用我不想要的cookie(不想使用EE核心代码)。
因此,我们可以说,我的主页上的一个典型的命中返回cookiesA,B和C,我不使用。 有时我也有我需要的cookiesD和E。
我想设置nginx来隐藏响应中的cookie A,B和C,并且只有当请求没有cookie或cookie D和E为空时才返回caching的内容。
那可以在nginx下设置吗?
到目前为止,我已经在我的configuration,这忽略了任何cookie。 我只想忽略或隐藏某些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_hide_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://xxxx:8080; }
难道不可能明确设置cookie标头吗? 所以像这样:
add_header Set-Cookie "A=deleted; Expires=Thu, 01-Jan-1970 00:00:01 GMT; Path=/; Domain=.foo.com add_header Set-Cookie "B=deleted; Expires=Thu, 01-Jan-1970 00:00:01 GMT; Path=/; Domain=.foo.com add_header Set-Cookie "C=deleted; Expires=Thu, 01-Jan-1970 00:00:01 GMT; Path=/; Domain=.foo.com
如果 我没有在这里运行的开发nginx实例,所以我无法testing.. proxy_set_header add_header ,那么可以使用proxy_set_header的头部名称“Cookie”而不是add_header 。
资料来源: