On Mon, Jun 07, 2010 at 03:06:54PM +0300, Alex Smorodin wrote:
> Добрый день. 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 > 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;
> }
> }
Возьмите 0.8.40 и используйте такую конфигурацию: