<div dir="ltr">Большое спасибо! Получилось.<br><br>>> Вам не нужен этот location с регуляркой.<br><div>Попытался избавиться, сходу не получилось.<br><br></div><div>Еще покурил мануалы, сделал location ^~ /newsite/ - перестало впадать в цикл и заработало.</div>
<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">28 августа 2014 г., 20:27 пользователь Валентин Бартенев <span dir="ltr"><<a href="mailto:vbart@nginx.com" target="_blank">vbart@nginx.com</a>></span> написал:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Thursday 28 August 2014 10:36:36 sejo412 wrote:<br>
> Спасибо, решение уже где-то рядом )<br>
> На боевом сервере за все отвечает php-скрипт.<br>
> Сделал так:<br>
>         location / {<br>
>           if ($http_cookie ~ 'newsitetest') {<br>
<br>
</div>Зачем так усложнять.<br>
В nginx есть специальные переменные для работы с куками: $cookie_*.<br>
<br>
К изучению: <a href="http://nginx.org/ru/docs/http/ngx_http_core_module.html#variables" target="_blank">http://nginx.org/ru/docs/http/ngx_http_core_module.html#variables</a><br>
<div class=""><br>
<br>
>                 rewrite ^ /newsite/$uri last;<br>
>           }<br>
>                 rewrite / /not_found.php?query_uri=/&$args;<br>
>           }<br>
><br>
>         location ~* ^/(.+)$ {<br>
<br>
</div>Вам не нужен этот location с регуляркой.<br>
<div class=""><br>
<br>
>           if ($http_cookie ~ 'newsitetest') {<br>
>                 rewrite ^ /newsite/$uri last;<br>
>           }<br>
><br>
>           try_files $uri $uri/ /not_found.php?query_uri=/$1&$args;<br>
>           fastcgi_pass   <a href="http://127.0.0.1:9000" target="_blank">127.0.0.1:9000</a>;<br>
>           fastcgi_index  index.html;<br>
>           include        fastcgi_params;<br>
>           fastcgi_param  SCRIPT_FILENAME<br>
> $document_root$fastcgi_script_name;<br>
>           fastcgi_param  QWERTY   $document_root$fastcgi_script_name;<br>
>         }<br>
><br>
>         location /newsite/ {<br>
>                 proxy_pass <a href="http://192.168.2.146" target="_blank">http://192.168.2.146</a>;<br>
<br>
</div>Есть большая разница между:<br>
<br>
  proxy_pass <a href="http://192.168.2.146" target="_blank">http://192.168.2.146</a>;<br>
<br>
и<br>
<br>
  proxy_pass <a href="http://192.168.2.146/" target="_blank">http://192.168.2.146/</a>;<br>
<br>
К изучению: <a href="http://nginx.org/r/proxy_pass/ru" target="_blank">http://nginx.org/r/proxy_pass/ru</a><br>
<div class=""><br>
>                 proxy_http_version 1.1;<br>
>                 proxy_set_header Connection "";<br>
>                 proxy_set_header Host $host;<br>
>                 proxy_set_header X-Real-IP $remote_addr;<br>
>                 proxy_set_header X-Forwarded-For<br>
> $proxy_add_x_forwarded_for;<br>
>         }<br>
><br>
> После установки куки браузер выдает 500 ошибку, в логах nginx (который<br>
> проксирует) ругань на циклический редирект<br>
> 2014/08/28 18:21:51 [error] 19193#0: *454 rewrite or internal redirection<br>
> cycle while processing<br>
><br>
"/newsite//newsite//newsite//newsite//newsite//newsite//newsite//newsite//newsite//newsite//not_found.php"<br>
><br>
<br>
</div>Ваш конфиг целиком должен выглядеть так:<br>
<br>
    location / {<br>
<br>
        if ($cookie_newsitetest) {<br>
            rewrite ^ /newsite/$uri last;<br>
        }<br>
<br>
        try_files $uri $uri/ /not_found.php?query_uri=$uri&$args;<br>
<div class=""><br>
        fastcgi_pass   <a href="http://127.0.0.1:9000" target="_blank">127.0.0.1:9000</a>;<br>
        fastcgi_index  index.html;<br>
<br>
        include        fastcgi_params;<br>
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;<br>
        fastcgi_param  QWERTY   $document_root$fastcgi_script_name;<br>
    }<br>
<br>
    location /newsite/ {<br>
</div>        internal;<br>
<br>
        proxy_pass <a href="http://192.168.2.146/" target="_blank">http://192.168.2.146/</a>;<br>
<div class="">        proxy_http_version 1.1;<br>
<br>
        proxy_set_header Connection "";<br>
        proxy_set_header Host $host;<br>
        proxy_set_header X-Real-IP $remote_addr;<br>
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
    }<br>
<br>
</div>--<br>
Валентин Бартенев<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><br></div><div>
<div>С уважением,</div><div>Синицкий Павел Евгеньевич</div><div>гр.  <i>ПИЭ91зи/04</i></div><div>тел. +79647994159</div></div>
</div>