Здравствуйте.
Имеется проксирующий 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.