2012-12-29 13 views
6

ho nginx impostato come un server proxy inverso e voglio rimuovere alcuni cookie impostati sul server di appoggio (Apache)Come rimuovere determinati cookie dalla risposta nginx

Mio sito utilizza un sacco di biscotti che posso non controllare (Expression Engine CMS, non chiedermi perché). Voglio cancellare alcuni di questi cookie (diciamo i cookie A B e C) e conservarne altri (cookie D ed E).

Successivamente, configurerò nginx per rispondere con il contenuto memorizzato nella cache solo se la richiesta non ha cookie.

Avete qualche idea su come fare questo? Grazie

finora ho nel mio config:

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; 
} 
+2

Terminato utilizzando vernice con modulo di intestazione. ha una funzione header.remove() in cui puoi scegliere come target cookie specifici. Ecco il link al modulo su github: https://github.com/varnish/libvmod-header –

risposta

3

Anche se è già detto che si è passati a Varnish per compiere quello che hai chiesto, la risposta corretta sarebbe è stato quello di utilizzare il headers-more-nginx-module che fondamentalmente ti permette lo stesso come fa la funzione Varnish (e molto altro).

+0

dal modulo docs, sembra essere in grado di fare ciò che inizialmente volevo. –

+0

Grande, felice di essere stato aiutato. – Fleshgrinder

Problemi correlati