ПРОЕКТЫ 


  АРХИВ 


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]

Embedded perl совместно с прокси рованием


  • To: nginx-ru@xxxxxxxxx
  • Subject: Embedded perl совместно с прокси рованием
  • From: Vladimir Stackov <amigo@xxxxxxxx>
  • Date: Thu, 11 Aug 2011 00:48:25 +0400

Приветствую,
возникло желание использовать встроенный перл совместно с директивой
proxy_pass, то есть сначала производит некоторые манипуляции вызываемый
модуль перла, а затем запрос, в случае возврата DECLINED, переходит к
бэкэнду.

Но оказалось, что не так всё просто:
всё дело в том, что если директива на выполнение модуля перла находится
перед директивой proxy_pass (i.e. perl smth:sub;\nproxy_pass
http://..;), то в этом случае модуль просто не исполняется. Если же
наоборот, то есть proxy_pass перед perl, то в этом случае perl не
вызывается.
В случае, если в локейшене используется отдача статики с директивой
root, то всё работает корректно.

В качестве простейшего решения проблемы решил сделать возврат из модуля
кода ошибки 505, если требуется передача запроса к бэкэнду:

location / {
 perl cp::handler;
 error_page 505 = @index;
}

location @index {
 proxy_pass http://127.0.0.1:8197;
}

Является ли подобное исключающее взаимодействие директив proxy_pass и
perl нормой и если да, то какие возможные пути обхода наиболее
корректны, кроме вышеприведённого и танцев с бубном при использовании
proxy_set и условий для передачи в бэкенд?
Спасибо.

-- 
Vladimir Stackov <amigo@xxxxxxxx>


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


 




Copyright © Lexa Software, 1996-2009.