Welcome! Log In Create A New Profile

Advanced

Re: nginx & internal & redirect

August 26, 2014 05:19AM
Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
>
> On Mon, Aug 25, 2014 at 10:51:50AM -0400, BieZax wrote:
>
> [...]
>
> > Добрый день!
> > Захотелось мне авторизовываться через mysql, нормальных модулей
> не
> > нашел и нарисовал свой костыль в виде перлового демона,
> который
> > слушает на порту 8080 и в случае удачной авторизации возвращает
> > `"X-Accel-Redirect: /ok" . $url`. В конфиге nginx эта
> конструкция
> > выглядит следующим образом:
>
> Just a side note: есть auth_request, которой делает приблизительно
> то же самое, но чуть удобнее с точки зрения конфигурирования.
> Подробнее тут:
>
> http://nginx.org/ru/docs/http/ngx_http_auth_request_module.html
>
> > location /test/ {
> > proxy_set_header X-CAuth-Realm "test";
> > proxy_set_header X-CAuth-Base "test";
> > proxy_set_header X-CAuth-Table "test";
> > proxy_set_header X-CAuth-GField "test";
> > proxy_set_header X-CAuth-PassF "password";
> > proxy_set_header Host $host;
> > proxy_set_header X-Real-IP $remote_addr;
> > proxy_set_header X-Forwarded-Host $host;
> > proxy_set_header X-Forwarded-Server $host;
> > proxy_set_header X-Forwarded-For
> > $proxy_add_x_forwarded_for;
> > proxy_pass http://127.0.0.1:8080;
> > }
> >
> > location /ok/test/ {
> > internal;
> > proxy_pass https://hostname/test2/;
> > proxy_redirect https://hostname/test2/ /ok/test/;
> > }
> > location /test2/ {
> > # rewrite ^/test2/$ /test2/qwe.pl redirect;
> > proxy_pass http://127.0.0.1:8081/test/;
> > proxy_redirect http://127.0.0.1:8081/test/
> /ok/test/;
> > }
> > И все прекрасно работало, пока не появился редирект(закоменчен).
> После
> > попадания в редирект меня перекидывает сюда
> http://ok/test/qwe.pl.
> > Никак не могу понять, откуда берется "ок", может кто-то сможет мне
> > подсказать ?
>
> Если берётся сразу после "http://", то это должно быть имя хоста
> из заголовка Host или server_name.
>
> Вообще, судя по конфигу, должен возвращаться редиркет на
> "http://<hostname>/ok/test/qwe.pl":
>
> - запрос к "/ok/test/" проксируется на https://hostname/test2/;
>
> - rewrite в "location /test2/" возвращает перенаправление на
> "/test2/qwe.pl" (+ "https://hostname");
>
> - proxy_redirect в "location /ok/test/" заменяет префикс
> "https://hostname/test2/" на "/ok/test/", т.е. перенаправление
> на "/ok/test/qwe.pl" (при возврате клиенту - к этому добавляет
> схема и имя хоста).
>
> Всё это в предположении, что "proxy_pass https://hostname" - суть
> проксирование на тот же nginx.
>
> --
> Maxim Dounin
> http://nginx.org/
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Спасибо! Убрал /ok/ из proxy_redirect и все завелось. Правда теперь не совсем понятно, как это работало до того, как нарвался на проблему с редиректом
Subject Author Posted

nginx & internal & redirect

BieZax August 25, 2014 10:51AM

Re: nginx & internal & redirect

Maxim Dounin August 25, 2014 12:02PM

Re: nginx & internal & redirect

BieZax August 26, 2014 05:19AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 314
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready