Re: Использование Perl вместе с proxy
Maxim Dounin
mdounin на mdounin.ru
Вт Июн 14 13:17:03 UTC 2016
Hello!
On Tue, Jun 14, 2016 at 07:04:50AM -0400, izlom wrote:
> Здравствуйте!
>
> Имею два location - корневой и тест. В обоих указан перл но в корневом еще
> и бекенд. Проблема в том, что перл работает только при запросе GET /test, а
> при запросе GET / перл не обрабатывается.
>
>
> location / {
> perl hello::test;
> proxy_pass http://$backend;
> }
>
>
> location /test {
> perl hello::test;
> }
>
> Как вызывать perl приоритетнее proxy?
Безусловный обработчик может быть только один. Если указано
больше одного, как в случае "location /" выше, будет работать тот,
который указан последним, т.к. просто переустановит обработку на
себя.
Если вы хотите, чтобы отрабатывал код на Perl, а потом по каким-то
условиям срабатывало проксирование - стоит подумать об
альтернативных враиантах записи того, что вы хотите сделать:
- использовать perl_set и строить дальнейшую обработку в
зависимости от результата вычисления переменной;
- при необходимости в коде на Perl делать перенаправление с
помощью $r->internal_redirect().
Подробнее в документации тут:
http://nginx.org/ru/docs/http/ngx_http_perl_module.html#perl_set
http://nginx.org/ru/docs/http/ngx_http_perl_module.html#methods
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru