<br>  Как сделать, чтобы при логине пользователь получил куку &quot;session&quot;  от апача ?  И чтобы потом из кэша она ни к кому не попала. Извините за сумбурность мыслей.      <br><div class="gmail_quote">9 июня 2010 г. 15:00 пользователь Igor Sysoev <span dir="ltr">&lt;<a href="mailto:igor@sysoev.ru">igor@sysoev.ru</a>&gt;</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>
&gt; Пробую так  (на 0.7.66 и на 0.8.4):<br>
&gt;     location / {<br>
&gt;         proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<br>
&gt;         proxy_set_header  Host  <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt;         proxy_set_header  X-Real-IP  $remote_addr;<br>
&gt;         proxy_next_upstream error timeout invalid_header http_500 http_503;<br>
&gt;         proxy_cache     one;<br>
&gt;         proxy_no_cache  $cookie_session;<br>
&gt;         proxy_cache_key<br>
&gt; &quot;$request_method|$is_args|$host|$request_uri|$cookie_session&quot;;<br>
<br>
</div>Зачем $is_args ?<br>
Зачем $request_method ? Чтобы раздувать кэш через HEAD ?<br>
<div class="im"><br>
&gt;         proxy_hide_header Set-Cookie;<br>
&gt;         proxy_pass_header Set-Cookie;<br>
&gt;         proxy_ignore_headers &quot;Cache-Control&quot; &quot;Expires&quot;;<br>
&gt;         proxy_cache_valid 200 301 302 304 1h;<br>
&gt;     }<br>
&gt;     location ~ (^/(page1|page2)) {<br>
&gt;         proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<br>
&gt;         proxy_set_header Host <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt;         proxy_set_header X-Real-IP $remote_addr;<br>
&gt;         proxy_next_upstream error timeout invalid_header http_500 http_503;<br>
&gt;         proxy_cache off;<br>
&gt;     }<br>
&gt; Если указывать только proxy_hide_headers Set-Cookie  - session в браузер не<br>
&gt; передается, попадает только в кэш (соответственно залогиниться нельзя). Если<br>
&gt; после указать proxy_path_header Set-Cookie -  куку браузер получает, но она<br>
&gt; все равно попадает в кэш и она же  отдаться в другом сеансе.  Как правильно<br>
&gt; поставить эти параметры, чтобы переменная не попадала в кэш, но проходила от<br>
&gt; бекэнда до браузера. Спасибо.<br>
&gt; при логине кука session не  передается .   но зато страница кэшируется с<br>
&gt; параметром &quot;Set-Cookie: SESSION=c6070942bd95129dff2f34271169a226<br>
&gt; я так понимаю если стоит no_cache $cookie_session то страница в любом случае<br>
&gt; не должна попасть в кэш.<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>
&gt; 7 июня 2010 г. 16:01 пользователь Igor Sysoev &lt;<a href="mailto:igor@sysoev.ru">igor@sysoev.ru</a>&gt; написал:<br>
&gt;<br>
&gt; &gt; On Mon, Jun 07, 2010 at 03:06:54PM +0300, Alex Smorodin wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Добрый день.  ubuntu с ядром 2.6.27-11-generic,nginx version: nginx/<br>
&gt; &gt; 0.7.65.<br>
&gt; &gt; &gt; Хочу настроить кэширование в  nginx.  На апач пропускаю  все post<br>
&gt; &gt; запросы,<br>
&gt; &gt; &gt; так же проверяю  куку session, она устанавливаетcя, когда пользователь<br>
&gt; &gt; &gt; логинится, соответственно эти страницы мы не кэшруем.  Проблема в<br>
&gt; &gt; следующем:<br>
&gt; &gt; &gt; в кэш иногда попадают внутренние страницы сайта, если не устанавливать<br>
&gt; &gt; &gt; параметр &quot;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&quot;.<br>
&gt; &gt; &gt; Если его добавить, все работает нормально.  Непонятно, как он может<br>
&gt; &gt; влиять?<br>
&gt; &gt; &gt; Для проверки добавил в ключ proxy_cache_key куку session,  так вот  кука<br>
&gt; &gt; &gt; попадает в кэш (хотя явно прописано условие не кэшировать страницу).<br>
&gt; &gt; &gt; Вот конфиг:<br>
&gt; &gt; &gt; server {<br>
&gt; &gt; &gt;         listen <a href="http://192.168.0.32:9081" target="_blank">192.168.0.32:9081</a>;<br>
&gt; &gt; &gt;         server_name <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt; &gt;         access_log /var/log/nginx/<a href="http://domain.com/nginx-access.log" target="_blank">domain.com/nginx-access.log</a> combined;<br>
&gt; &gt; &gt;         error_log  /var/log/nginx/<a href="http://domain.com/nginx-error.log" target="_blank">domain.com/nginx-error.log</a> error;<br>
&gt; &gt; &gt;         proxy_temp_path /var/cache/nginx/<a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt; &gt;         location @nocached {<br>
&gt; &gt; &gt;                 proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;&lt;<br>
&gt; &gt; <a href="http://192.168.0.32:81/" target="_blank">http://192.168.0.32:81/</a>;&gt;<br>
&gt; &gt; &gt;                 proxy_set_header Host <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt; &gt;                 proxy_set_header X-Real-IP $remote_addr;<br>
&gt; &gt; &gt;                 proxy_set_header X-Forwarded-For<br>
&gt; &gt; $proxy_add_x_forwarded_for;<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt;         location / {<br>
&gt; &gt; &gt;                 proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;&lt;<br>
&gt; &gt; <a href="http://192.168.0.32:81/" target="_blank">http://192.168.0.32:81/</a>;&gt;<br>
&gt; &gt; &gt;                 proxy_set_header Host  <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt; &gt;                 proxy_set_header  X-Real-IP  $remote_addr;<br>
&gt; &gt; &gt;                 proxy_set_header X-Forwarded-For<br>
&gt; &gt; $proxy_add_x_forwarded_for;<br>
&gt; &gt; &gt;                 proxy_next_upstream error timeout invalid_header http_500<br>
&gt; &gt; &gt; http_503;<br>
&gt; &gt; &gt;                if ($cookie_session) {<br>
&gt; &gt; &gt;                         return 412;<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;                if ($request_method = POST ) {<br>
&gt; &gt; &gt;                         return 412;<br>
&gt; &gt; &gt;                }<br>
&gt; &gt; &gt;                 error_page 412 = @nocached;<br>
&gt; &gt; &gt;                 proxy_cache one;<br>
&gt; &gt; &gt;                 proxy_cache_key<br>
&gt; &gt; &gt; &quot;$request_method|$is_args|$host|$request_uri|$cookie_session&quot;;<br>
&gt; &gt; &gt;                 proxy_hide_header &quot;Set-Cookie&quot;;<br>
&gt; &gt; &gt;                 proxy_ignore_headers &quot;Cache-Control&quot; &quot;Expires&quot;;<br>
&gt; &gt; &gt;                 proxy_cache_valid 200 301 302 304 1h;<br>
&gt; &gt; &gt;        }<br>
&gt; &gt; &gt; }<br>
&gt; &gt;<br>
&gt; &gt; Возьмите 0.8.40 и используйте такую конфигурацию:<br>
&gt; &gt;<br>
&gt; &gt;  server {<br>
&gt; &gt;     listen <a href="http://192.168.0.32:9081" target="_blank">192.168.0.32:9081</a>;<br>
&gt; &gt;     server_name <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt;     access_log /var/log/nginx/<a href="http://domain.com/nginx-access.log" target="_blank">domain.com/nginx-access.log</a> combined;<br>
&gt; &gt;     error_log  /var/log/nginx/<a href="http://domain.com/nginx-error.log" target="_blank">domain.com/nginx-error.log</a> error;<br>
&gt; &gt;     proxy_temp_path /var/cache/nginx/<a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt;<br>
&gt; &gt;      location / {<br>
&gt; &gt;          proxy_pass <a href="http://192.168.0.32:81" target="_blank">http://192.168.0.32:81</a>;<br>
&gt; &gt;         proxy_set_header  Host  <a href="http://domain.com" target="_blank">domain.com</a>;<br>
&gt; &gt;         proxy_set_header  X-Real-IP  $remote_addr;<br>
&gt; &gt;          proxy_next_upstream error timeout invalid_header http_500<br>
&gt; &gt; http_503;<br>
&gt; &gt;          proxy_cache     one;<br>
&gt; &gt;         proxy_no_cache  $cookie_session;<br>
&gt; &gt;         proxy_cache_key <a href="http://domain.com" target="_blank">domain.com</a>$uri?$args;<br>
&gt; &gt;          proxy_hide_header &quot;Set-Cookie&quot;;<br>
&gt; &gt;         proxy_ignore_headers &quot;Cache-Control&quot; &quot;Expires&quot;;<br>
&gt; &gt;         proxy_cache_valid 200 301 302 304 1h;<br>
&gt; &gt;     }<br>
&gt; &gt;  }<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; Игорь Сысоев<br>
&gt; &gt; <a href="http://sysoev.ru" target="_blank">http://sysoev.ru</a><br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; nginx-ru mailing list<br>
&gt; &gt; <a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
&gt; &gt; <a href="http://nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://nginx.org/mailman/listinfo/nginx-ru</a><br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; --<br>
&gt; С уважением,<br>
&gt; Смородин Александр<br>
&gt;<br>
&gt;            mailto: <a href="mailto:agsmorodin@gmail.com">agsmorodin@gmail.com</a><br>
<br>
&gt; _______________________________________________<br>
&gt; nginx-ru mailing list<br>
&gt; <a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
&gt; <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>