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