Я новичок в nginx и пытаюсь настроить его как обратный прокси-сервер. Пока что у меня apache работает в качестве внутреннего сервера на 8080 и nginx на порту 80.
На моем веб-сайте используется много файлов cookie, которые я не контролирую ... Я использую Expression Engine CMS, и это не позволяет мне отключать файлы cookie, которые мне не нужны (не хочу связываться с основным кодом EE ).
Итак, допустим, что при обычном посещении моей домашней страницы возвращаются файлы cookie A, B и C, которые я не использую. Иногда у меня также есть файлы cookie D и E, которые мне нужны.
Я хочу настроить nginx, чтобы скрыть файлы cookie A, B и C из ответа и возвращать кэшированный контент только в том случае, если запрос не содержит файлов cookie или файлы cookie D и E пусты.
Возможно ли это настроить под nginx?
Пока что у меня есть это в моей конфигурации, которая игнорирует любые файлы 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://x.x.x.x: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 для разработки, поэтому я не могу протестировать ..proxy_set_header
с названием заголовка "Cookie" вместо add_header
, если не работает.
Источники: