proxy_cache_bypass $cookie_PHPSESSID;

buxley nginx-forum на nginx.us
Пт Фев 18 14:42:16 MSK 2011


Здравствуйте.

Имеется проксирующий nginx/0.8.53, от
которого требуется отдавать
кешированные странички незалогиненным
пользователям, а залогиненных
пользователей и пользователей с
включенным дебагом пробрасывать на
бекенд.

Конфигурация:
[code]
http{
        proxy_cache_path        /tmp/nginx-cache/main-cache levels=1:2
keys_zone=main:64m max_size=4g inactive=1h;
        proxy_temp_path         /tmp/nginx-cache/temp;
        proxy_cache_key         $scheme$proxy_host$uri$is_args$args;

        ...

        server {
                ...

                location = / {
                        proxy_cache             main;
                        proxy_cache_min_uses    1;
                        proxy_cache_valid       200 10s;
                        proxy_cache_use_stale   error timeout
invalid_header http_500 http_502 http_503 http_504 updating;
                 
                        proxy_no_cache          $cookie_PHPSESSID
$cookie_debug;
                        proxy_cache_bypass      $cookie_PHPSESSID
$cookie_debug;
                 
                        proxy_pass              http://backend/;
                        ...
                }
        }
        
}
[/code]

Столкнулся со следующей проблемой:
если session_id начинается с 0, то nginx считает
пользователя гостем и отдает страницы
из кеша. С дебагом проблем нет, потому
что там либо 1 либо куки нет.
Наблюдал ли кто-нибудь похожую
проблему? Как можно обойти кроме как
использовать session_regenerate_id() до тех пор
пока session_id не будет начинаться не с 0.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,176433,176433#msg-176433




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