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