ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Вопрос по nginx proxy + perl



Hello!

On Wed, Sep 26, 2012 at 09:23:33AM -0400, actionless wrote:

> Откапываю эту тему. Похожая проблема:
> location ~ /location1 {
>         perl module_name::func;
>         index index.html;
>         root /var/www;
> }
> так перл отрабатывает.
> 
> А в такой ситуации почему-то до перла ничего не доходит:
> location ~ /location2 {
>     perl module_name::func;
>     proxy_pass http://127.0.0.1:8000;
>     proxy_set_header X-Forwarded-For $remote_addr;
>     proxy_connect_timeout 600;
>     proxy_read_timeout 600;
>     proxy_send_timeout 600;
> }

Потому что perl и proxy_pass - оба безусловные обработчики 
запроса, и работать будет только кто-то один.  (Надо, наверное, в 
таких ситуациях ругань добавить при разборе конфига.)

Если хочется сходить на бекенд, а потому результат обработать 
перлом - то можно это сделать, например, с помощью модуля eval 
Валерия Холодкова:

http://grid.net.ru/nginx/eval.ru.html

Если хочется сначала скормить запрос перлу, а потом в зависимости 
от результата идти или не идти на бекенд - то можно это сделать, 
сконфигурировав для хождения на бекенд отдельный location и в 
perl'е по необходимости используя функцию $r->internal_redirect():

http://nginx.org/ru/docs/http/ngx_http_perl_module.html#methods

Maxim Dounin

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.