проблема с кэшированием
Alex Smorodin
agsmorodin на gmail.com
Пн Июн 7 16:06:54 MSD 2010
Добрый день. ubuntu с ядром 2.6.27-11-generic,nginx version: nginx/0.7.65.
Хочу настроить кэширование в nginx. На апач пропускаю все post запросы,
так же проверяю куку session, она устанавливаетcя, когда пользователь
логинится, соответственно эти страницы мы не кэшруем. Проблема в следующем:
в кэш иногда попадают внутренние страницы сайта, если не устанавливать
параметр "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;".
Если его добавить, все работает нормально. Непонятно, как он может влиять?
Для проверки добавил в ключ proxy_cache_key куку session, так вот кука
попадает в кэш (хотя явно прописано условие не кэшировать страницу).
Вот конфиг:
server {
listen 192.168.0.32:9081;
server_name domain.com;
access_log /var/log/nginx/domain.com/nginx-access.log combined;
error_log /var/log/nginx/domain.com/nginx-error.log error;
proxy_temp_path /var/cache/nginx/domain.com;
location @nocached {
proxy_pass http://192.168.0.32:81;<http://192.168.0.32:81/;>
proxy_set_header Host domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://192.168.0.32:81;<http://192.168.0.32:81/;>
proxy_set_header Host domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500
http_503;
if ($cookie_session) {
return 412;
}
if ($request_method = POST ) {
return 412;
}
error_page 412 = @nocached;
proxy_cache one;
proxy_cache_key
"$request_method|$is_args|$host|$request_uri|$cookie_session";
proxy_hide_header "Set-Cookie";
proxy_ignore_headers "Cache-Control" "Expires";
proxy_cache_valid 200 301 302 304 1h;
}
}
Заранее спасибо.
--
С уважением,
Смородин Александр
mailto: agsmorodin на gmail.com
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100607/e7ca2f03/attachment.html>
Подробная информация о списке рассылки nginx-ru