Пробую так (на 0.7.66 и на 0.8.4):<br> location / {<br> proxy_pass <a href="http://192.168.0.32:81">http://192.168.0.32:81</a>;<br> proxy_set_header Host <a href="http://domain.com">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_no_cache $cookie_session;<br> proxy_cache_key "$request_method|$is_args|$host|$request_uri|$cookie_session";<br>
proxy_hide_header Set-Cookie;<br> proxy_pass_header Set-Cookie;<br> proxy_ignore_headers "Cache-Control" "Expires";<br> proxy_cache_valid 200 301 302 304 1h;<br> }<br> location ~ (^/(page1|page2)) {<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 off;<br> }<br>Если указывать только proxy_hide_headers Set-Cookie - session в браузер не передается, попадает только в кэш (соответственно залогиниться нельзя). Если после указать proxy_path_header Set-Cookie - куку браузер получает, но она все равно попадает в кэш и она же отдаться в другом сеансе. Как правильно поставить эти параметры, чтобы переменная не попадала в кэш, но проходила от бекэнда до браузера. Спасибо. <br>
при логине кука session не передается . но зато страница кэшируется с параметром "Set-Cookie: SESSION=c6070942bd95129dff2f34271169a226<br>я так понимаю если стоит no_cache $cookie_session то страница в любом случае не должна попасть в кэш. <br>
Спасибо. <br><div class="gmail_quote">7 июня 2010 г. 16:01 пользователь Igor Sysoev <span dir="ltr"><<a href="mailto:igor@sysoev.ru" target="_blank">igor@sysoev.ru</a>></span> написал:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>On Mon, Jun 07, 2010 at 03:06:54PM +0300, Alex Smorodin wrote:<br>
<br>
> Добрый день. ubuntu с ядром 2.6.27-11-generic,nginx version: nginx/<a href="http://0.7.65." target="_blank">0.7.65.</a><br>
> Хочу настроить кэширование в nginx. На апач пропускаю все post запросы,<br>
> так же проверяю куку session, она устанавливаетcя, когда пользователь<br>
> логинится, соответственно эти страницы мы не кэшруем. Проблема в следующем:<br>
> в кэш иногда попадают внутренние страницы сайта, если не устанавливать<br>
> параметр "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;".<br>
> Если его добавить, все работает нормально. Непонятно, как он может влиять?<br>
> Для проверки добавил в ключ proxy_cache_key куку session, так вот кука<br>
> попадает в кэш (хотя явно прописано условие не кэшировать страницу).<br>
> Вот конфиг:<br>
> server {<br>
> listen <a href="http://192.168.0.32:9081" target="_blank">192.168.0.32:9081</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 @nocached {<br>
</div>> proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<<a href="http://192.168.0.32:81/" target="_blank">http://192.168.0.32:81/</a>;><br>
<div>> 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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
> }<br>
> location / {<br>
</div>> proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<<a href="http://192.168.0.32:81/" target="_blank">http://192.168.0.32:81/</a>;><br>
<div>> 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_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
> proxy_next_upstream error timeout invalid_header http_500<br>
> http_503;<br>
> if ($cookie_session) {<br>
> return 412;<br>
> }<br>
> if ($request_method = POST ) {<br>
> return 412;<br>
> }<br>
> error_page 412 = @nocached;<br>
> proxy_cache one;<br>
> proxy_cache_key<br>
> "$request_method|$is_args|$host|$request_uri|$cookie_session";<br>
> proxy_hide_header "Set-Cookie";<br>
> proxy_ignore_headers "Cache-Control" "Expires";<br>
> proxy_cache_valid 200 301 302 304 1h;<br>
> }<br>
> }<br>
<br>
</div>Возьмите 0.8.40 и используйте такую конфигурацию:<br>
<div><br>
server {<br>
listen <a href="http://192.168.0.32:9081" target="_blank">192.168.0.32:9081</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>
<br>
</div> location / {<br>
<div> 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>
</div><div> proxy_next_upstream error timeout invalid_header http_500 http_503;<br>
</div> proxy_cache one;<br>
proxy_no_cache $cookie_session;<br>
proxy_cache_key <a href="http://domain.com" target="_blank">domain.com</a>$uri?$args;<br>
<div><div></div><div> proxy_hide_header "Set-Cookie";<br>
proxy_ignore_headers "Cache-Control" "Expires";<br>
proxy_cache_valid 200 301 302 304 1h;<br>
}<br>
}<br>
<br>
<br>
</div></div><font color="#888888">--<br>
Игорь Сысоев<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" target="_blank">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>
</font></blockquote></div><br><br clear="all"><br>-- <br>С уважением,<br> Смородин Александр <br> <br> mailto: <a href="mailto:agsmorodin@gmail.com" target="_blank">agsmorodin@gmail.com</a><br>