Сделал так: если в запросе присутствует $cookie_session или же в ответе устанавливается, отдаю Cache-Control и X-Accel-Expires в 0. Все работает отлично. Спасибо большое. <br><br><div class="gmail_quote">13 июня 2010 г. 23:25 пользователь Igor Sysoev <span dir="ltr"><<a href="mailto:igor@sysoev.ru">igor@sysoev.ru</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div><div></div><div class="h5">On Fri, Jun 11, 2010 at 02:35:23PM +0300, Alex Smorodin wrote:<br>
<br>
> Ох.в общем всю логику передал. Чтобы не выносить страницы, где передаются<br>
> куки, в отдельный локейшн, вместе с Set-Cookie одновременно делаем<br>
> proxy_ignore_headers "Cache-Control", тогда nginx не кэширует страницу.<br>
> Все работает хорошо, но при автоматическом тестировании ловим такое:<br>
> переменная кука session попадает в ключ.<br>
> server {<br>
> listen <a href="http://192.168.0.32:9181" target="_blank">192.168.0.32:9181</a>;<br>
> server_name <a href="http://domain.com" target="_blank">domain.com</a>;<br>
> access_log /var/log/nginx/<a href="http://domain.com/nginx-access.log" target="_blank">domain.com/nginx-access.log</a> combined;<br>
> error_log /var/log/nginx/<a href="http://domain.com/nginx-error.log" target="_blank">domain.com/nginx-error.log</a> error;<br>
> proxy_temp_path /var/cache/nginx/<a href="http://domain.com" target="_blank">domain.com</a>;<br>
> location / {<br>
> proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<br>
> proxy_set_header Host <a href="http://domain.com" target="_blank">domain.com</a>;<br>
> proxy_set_header X-Real-IP $remote_addr;<br>
> proxy_next_upstream error timeout invalid_header http_500 http_503;<br>
> proxy_cache one;<br>
> proxy_cache_key<br>
> $host$uri?$args|$cookie_session|$cookie_username|$cookie_username|;<br>
> proxy_no_cache $cookie_session $cookie_username<br>
> $http_x_requested_with;<br>
> proxy_pass_header Set-Cookie;<br>
> proxy_ignore_headers "Expires";<br>
> proxy_cache_valid 200 301 302 304 1h;<br>
> }<br>
> ключ в кэше получается вида:<br>
> <a href="http://192.168.0.32/blabla?|02e3927ebc95993e6adf59ab7072bf1c|||" target="_blank">192.168.0.32/blabla?|02e3927ebc95993e6adf59ab7072bf1c|||</a><br>
> Вопрос: как переменная cookie_session может попадать в ключ (очень редко,<br>
> но проскакивает), если она указана в параметре proxy_no_cache?<br>
<br>
</div></div>А в таких ответах есть Cache-Control или X-Accel-Expires ?<br>
proxy_no_cache запрещает использовать уже закэшированный ответ, но<br>
сам ответ может быть закэширован, если в нём есть X-Accel-Expires,<br>
Cache-Control или Expires.<br>
<font color="#888888"><br>
<br>
--<br>
</font><div><div></div><div class="h5">Игорь Сысоев<br>
<a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>С уважением,<br> Смородин Александр <br> <br> mailto: <a href="mailto:agsmorodin@gmail.com">agsmorodin@gmail.com</a><br>