<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>