Welcome! Log In Create A New Profile

Advanced

Re: nginx & internal & redirect

Maxim Dounin
August 25, 2014 12:02PM
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
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: 318
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