<br> Как сделать, чтобы при логине пользователь получил куку "session" от апача ? И чтобы потом из кэша она ни к кому не попала. Извините за сумбурность мыслей. <br><div class="gmail_quote">9 июня 2010 г. 15:00 пользователь Igor Sysoev <span dir="ltr"><<a href="mailto:igor@sysoev.ru">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 class="im">On Wed, Jun 09, 2010 at 02:42:48PM +0300, Alex Smorodin wrote:<br>
<br>
> Пробую так (на 0.7.66 и на 0.8.4):<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_no_cache $cookie_session;<br>
> proxy_cache_key<br>
> "$request_method|$is_args|$host|$request_uri|$cookie_session";<br>
<br>
</div>Зачем $is_args ?<br>
Зачем $request_method ? Чтобы раздувать кэш через HEAD ?<br>
<div class="im"><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 в браузер не<br>
> передается, попадает только в кэш (соответственно залогиниться нельзя). Если<br>
> после указать proxy_path_header Set-Cookie - куку браузер получает, но она<br>
> все равно попадает в кэш и она же отдаться в другом сеансе. Как правильно<br>
> поставить эти параметры, чтобы переменная не попадала в кэш, но проходила от<br>
> бекэнда до браузера. Спасибо.<br>
> при логине кука session не передается . но зато страница кэшируется с<br>
> параметром "Set-Cookie: SESSION=c6070942bd95129dff2f34271169a226<br>
> я так понимаю если стоит no_cache $cookie_session то страница в любом случае<br>
> не должна попасть в кэш.<br>
<br>
</div>$cookie_session - это кука в запросе клиента, а не Set-Cookie.<br>
<br>
Ответ всегда кэшируется полностью, в том числе и с куками.<br>
А вот что отдавать клиенту из кэша - это управляется<br>
proxy_hide_header/proxy_pass_header и по умолчанию куки из кэша<br>
не отдаются.<br>
<br>
Что я не понять, так это то, как вы хотите логинить клиента ответом<br>
из кэша ?<br>
<div><div></div><div class="h5"><br>
> 7 июня 2010 г. 16:01 пользователь Igor Sysoev <<a href="mailto:igor@sysoev.ru">igor@sysoev.ru</a>> написал:<br>
><br>
> > On Mon, Jun 07, 2010 at 03:06:54PM +0300, Alex Smorodin wrote:<br>
> ><br>
> > > Добрый день. ubuntu с ядром 2.6.27-11-generic,nginx version: nginx/<br>
> > 0.7.65.<br>
> > > Хочу настроить кэширование в nginx. На апач пропускаю все post<br>
> > запросы,<br>
> > > так же проверяю куку session, она устанавливаетcя, когда пользователь<br>
> > > логинится, соответственно эти страницы мы не кэшруем. Проблема в<br>
> > следующем:<br>
> > > в кэш иногда попадают внутренние страницы сайта, если не устанавливать<br>
> > > параметр "proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;".<br>
> > > Если его добавить, все работает нормально. Непонятно, как он может<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>
> > > proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<<br>
> > <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_set_header X-Forwarded-For<br>
> > $proxy_add_x_forwarded_for;<br>
> > > }<br>
> > > location / {<br>
> > > proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<<br>
> > <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_set_header X-Forwarded-For<br>
> > $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>
> > Возьмите 0.8.40 и используйте такую конфигурацию:<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>
> ><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<br>
> > http_503;<br>
> > 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>
> > 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>
> > --<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">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>
> ><br>
><br>
><br>
><br>
> --<br>
> С уважением,<br>
> Смородин Александр<br>
><br>
> mailto: <a href="mailto:agsmorodin@gmail.com">agsmorodin@gmail.com</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>
<br>
<br>
--<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">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>