2012-12-29 19 views
6

Tôi đã thiết lập nginx làm máy chủ proxy ngược và tôi muốn xóa một số cookie nhất định được đặt trên máy chủ được sao lưu (apache)Cách xóa một số cookie nhất định khỏi phản hồi nginx

Trang web của tôi sử dụng nhiều cookie không kiểm soát (Expression Engine CMS, đừng hỏi tôi tại sao). Tôi muốn xóa một số cookie đó (cho phép nói cookie A B và C) và giữ một số cookie khác (cookie D và E).

Sau đó tôi sẽ thiết lập nginx để chỉ phản hồi nội dung đã lưu trong bộ nhớ cache nếu yêu cầu không có cookie.

Bạn có biết cách làm điều này không? Cảm ơn

Cho đến nay tôi có trong cấu hình của tôi:

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

Đã kết thúc bằng véc ni có mô-đun tiêu đề. nó có hàm header.remove() trong đó bạn có thể nhắm mục tiêu các cookie cụ thể. Đây là liên kết đến các mô-đun trên github: https://github.com/varnish/libvmod-header –

Trả lời

3

Mặc dù bạn đã nói rằng bạn chuyển sang Varnish để thực hiện những gì bạn yêu cầu, câu trả lời đúng sẽ đã được sử dụng headers-more-nginx-module mà về cơ bản cho phép bạn giống như chức năng Varnish (và nhiều hơn nữa).

+0

từ các tài liệu mô-đun, có vẻ như để có thể làm những gì tôi ban đầu muốn. –

+0

Tuyệt vời, vui vì tôi đến từ sự giúp đỡ. – Fleshgrinder

Các vấn đề liên quan