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
