nginx & internal & redirect

BieZax nginx-forum at nginx.us
Mon Aug 25 14:51:50 UTC 2014


Добрый  день!
Захотелось мне  авторизовываться  через  mysql, нормальных  модулей  не 
нашел и нарисовал  свой  костыль  в виде  перлового  демона,  который 
слушает  на  порту 8080  и  в случае удачной авторизации возвращает
`"X-Accel-Redirect: /ok" .  $url`. В  конфиге   nginx   эта конструкция 
выглядит  следующим образом:
      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. 
Никак не могу понять, откуда берется "ок", может кто-то сможет мне
подсказать ?
ЗЫ Рабочая конструкция,  естественно, несколько  сложнее, и  вместо test2  
отдельный  бэкенд.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,252809,252809#msg-252809



Подробная информация о списке рассылки nginx-ru