proxy if cookie + map

Синицкий Павел Евгеньевич sejo412 at gmail.com
Fri Aug 29 12:55:25 UTC 2014


Большое спасибо! Получилось.

>> Вам не нужен этот location с регуляркой.
Попытался избавиться, сходу не получилось.

Еще покурил мануалы, сделал location ^~ /newsite/ - перестало впадать в
цикл и заработало.



28 августа 2014 г., 20:27 пользователь Валентин Бартенев <vbart at nginx.com>
написал:

> On Thursday 28 August 2014 10:36:36 sejo412 wrote:
> > Спасибо, решение уже где-то рядом )
> > На боевом сервере за все отвечает php-скрипт.
> > Сделал так:
> >         location / {
> >           if ($http_cookie ~ 'newsitetest') {
>
> Зачем так усложнять.
> В nginx есть специальные переменные для работы с куками: $cookie_*.
>
> К изучению:
> http://nginx.org/ru/docs/http/ngx_http_core_module.html#variables
>
>
> >                 rewrite ^ /newsite/$uri last;
> >           }
> >                 rewrite / /not_found.php?query_uri=/&$args;
> >           }
> >
> >         location ~* ^/(.+)$ {
>
> Вам не нужен этот location с регуляркой.
>
>
> >           if ($http_cookie ~ 'newsitetest') {
> >                 rewrite ^ /newsite/$uri last;
> >           }
> >
> >           try_files $uri $uri/ /not_found.php?query_uri=/$1&$args;
> >           fastcgi_pass   127.0.0.1:9000;
> >           fastcgi_index  index.html;
> >           include        fastcgi_params;
> >           fastcgi_param  SCRIPT_FILENAME
> > $document_root$fastcgi_script_name;
> >           fastcgi_param  QWERTY   $document_root$fastcgi_script_name;
> >         }
> >
> >         location /newsite/ {
> >                 proxy_pass http://192.168.2.146;
>
> Есть большая разница между:
>
>   proxy_pass http://192.168.2.146;
>
> и
>
>   proxy_pass http://192.168.2.146/;
>
> К изучению: http://nginx.org/r/proxy_pass/ru
>
> >                 proxy_http_version 1.1;
> >                 proxy_set_header Connection "";
> >                 proxy_set_header Host $host;
> >                 proxy_set_header X-Real-IP $remote_addr;
> >                 proxy_set_header X-Forwarded-For
> > $proxy_add_x_forwarded_for;
> >         }
> >
> > После установки куки браузер выдает 500 ошибку, в логах nginx (который
> > проксирует) ругань на циклический редирект
> > 2014/08/28 18:21:51 [error] 19193#0: *454 rewrite or internal redirection
> > cycle while processing
> >
>
> "/newsite//newsite//newsite//newsite//newsite//newsite//newsite//newsite//newsite//newsite//not_found.php"
> >
>
> Ваш конфиг целиком должен выглядеть так:
>
>     location / {
>
>         if ($cookie_newsitetest) {
>             rewrite ^ /newsite/$uri last;
>         }
>
>         try_files $uri $uri/ /not_found.php?query_uri=$uri&$args;
>
>         fastcgi_pass   127.0.0.1:9000;
>         fastcgi_index  index.html;
>
>         include        fastcgi_params;
>         fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
>         fastcgi_param  QWERTY   $document_root$fastcgi_script_name;
>     }
>
>     location /newsite/ {
>         internal;
>
>         proxy_pass http://192.168.2.146/;
>         proxy_http_version 1.1;
>
>         proxy_set_header Connection "";
>         proxy_set_header Host $host;
>         proxy_set_header X-Real-IP $remote_addr;
>         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
>     }
>
> --
> Валентин Бартенев
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>



-- 

С уважением,
Синицкий Павел Евгеньевич
гр.  *ПИЭ91зи/04*
тел. +79647994159
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20140829/311a9c13/attachment.html>


Подробная информация о списке рассылки nginx-ru