Remover cookies por nome de cookie no proxy reverso nginx

1

Sou relativamente novo no nginx e estou tentando configurá-lo como um servidor proxy reverso. Até agora tenho o apache funcionando como um servidor de backend no 8080 e nginx na porta 80.

Meu site usa muitos cookies sobre os quais não tenho controle ... Estou usando o Expression Engine CMS e ele não me permite desativar os cookies que eu não quero (não quero usar Código principal EE).

Então, digamos que um hit típico na minha página inicial retorne os cookies A, B e C que eu não uso. Às vezes eu também tenho cookies D e E que eu preciso.

Eu quero configurar o nginx para ocultar os cookies A, B e C da resposta e retornar o conteúdo em cache apenas se a solicitação for livre de cookies ou se os cookies D e E estiverem vazios.

É possível configurar sob o nginx?

Até agora eu tenho isso na minha configuração, que ignora os cookies. Eu só quero ignorar ou esconder certos cookies:

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;
}
    
por Martin Taleski 29.12.2012 / 21:45

1 resposta

1

Não seria possível definir explicitamente os cabeçalhos de cookie? Então, algo como:

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

Você poderia usar proxy_set_header com o nome do cabeçalho "Cookie" em vez de add_header , se não funcionar. Eu não tenho uma instância nginx de desenvolvimento sendo executada aqui para que eu possa teste ..

Fontes:

por 30.12.2012 / 04:22