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@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru