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 > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx-ru
Спасибо! Убрал /ok/ из proxy_redirect и все завелось. Правда теперь не совсем понятно, как это работало до того, как нарвался на проблему с редиректом Posted at Nginx Forum: http://forum.nginx.org/read.php?21,252809,252830#msg-252830 _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
