проблема с кэшированием

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 было извлечено&hellip;
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20100607/e7ca2f03/attachment.html>


Подробная информация о списке рассылки nginx-ru