Re: Не работает perl_set при использовании perl module

Maxim Dounin mdounin на mdounin.ru
Ср Май 10 13:33:10 UTC 2017


Hello!

On Wed, May 10, 2017 at 04:16:48PM +0300, Alex Domoradov wrote:

> Какие-нибудь идеи/предположения?
> 
> On Thu, May 4, 2017 at 4:57 PM, Alex Domoradov <alex.hha at gmail.com> wrote:
> 
> > Привет всем,
> >
> > имеется
> >
> > $ nginx -V
> > nginx version: nginx/1.12.0
> > built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
> > built with OpenSSL 1.0.1 14 Mar 2012
> > TLS SNI support enabled
> > configure arguments: --prefix=/opt/nginx --with-http_ssl_module
> > --with-http_v2_module --with-http_realip_module
> > --with-http_gzip_static_module --with-http_stub_status_module
> > --with-http_addition_module --with-cc-opt=-Wno-error --with-ld-opt=
> > --add-module=/var/lib/gems/1.8/gems/passenger-5.1.3/src/nginx_module
> > --with-http_perl_module
> >
> > Мне надо логировать определенную переменную окружения, сделал простейший
> > конфиг
> >
> > user capistrano;
> > worker_processes 1;
> >
> > env RACK_ENV;
> >
> > http {
> >     passenger_root /var/lib/gems/1.8/gems/passenger-5.1.3;
> >     passenger_ruby /usr/bin/ruby1.8;
> >
> >     perl_set $RACK_ENV 'sub { return $ENV{"RACK_ENV"}; }';
> >
> >     log_format awslogs  '[$time_local] env=TEST-$RACK_ENV\n';
> > }
> >
> > В итоге в логах получаю
> >
> > [04/May/2017:13:49:28 +0000] env=TEST-
> >
> > Я что то упускаю?

Переменная окружения, установленная при запуске nginx'а, при таком 
конфиге должна быть нормально доступна:

# RACK_ENV=foo nginx/objs/nginx

[10/May/2017:13:25:17 +0000] env=TEST-foo

Не следует, однако, ожидать, что установленные где-то в коде на 
Ruby переменные окружения будут таким образом доступны nginx'у.  
Переменные окружения локальны для конкретного процесса, а 
passenger - запускает для выполнения Ruby-кода отдельные процессы.

-- 
Maxim Dounin
http://nginx.org/


Подробная информация о списке рассылки nginx-ru