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

Igor Sysoev igor на sysoev.ru
Пн Июн 14 00:25:57 MSD 2010


On Fri, Jun 11, 2010 at 02:35:23PM +0300, Alex Smorodin wrote:

> Ох.в общем всю логику передал. Чтобы не выносить страницы, где передаются
> куки, в отдельный локейшн,  вместе с Set-Cookie одновременно делаем
> proxy_ignore_headers "Cache-Control", тогда  nginx не кэширует страницу.
> Все работает хорошо, но при автоматическом тестировании ловим такое:
> переменная кука session попадает в ключ.
> server {
>     listen 192.168.0.32:9181;
>     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 / {
>         proxy_pass http://192.168.0.32:81;
>         proxy_set_header  Host  domain.com;
>         proxy_set_header  X-Real-IP  $remote_addr;
>         proxy_next_upstream error timeout invalid_header http_500 http_503;
>         proxy_cache     one;
>         proxy_cache_key
> $host$uri?$args|$cookie_session|$cookie_username|$cookie_username|;
>         proxy_no_cache $cookie_session $cookie_username
> $http_x_requested_with;
>         proxy_pass_header Set-Cookie;
>         proxy_ignore_headers "Expires";
>         proxy_cache_valid 200 301 302 304 1h;
>     }
> ключ в кэше получается вида:
> 192.168.0.32/blabla?|02e3927ebc95993e6adf59ab7072bf1c|||
> Вопрос: как переменная cookie_session может попадать в ключ (очень редко,
> но проскакивает), если она указана в параметре proxy_no_cache?

А в таких ответах есть Cache-Control или X-Accel-Expires ?
proxy_no_cache запрещает использовать уже закэшированный ответ, но
сам ответ может быть закэширован, если в нём есть X-Accel-Expires,
Cache-Control или Expires.


-- 
Игорь Сысоев
http://sysoev.ru



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