Re[2]: ENV в nginx.conf

xinu xinu at list.ru
Wed Jul 15 14:16:44 MSD 2009


Алексей, Игорь,  Здравствуйте!

как Вы полагаете, было ли бы возможно имплементировать не всех ENV из shell'а поголовно, 
а лишь екстра задекларированных в конфиг файле? т.е. типа:
   read_env <имя_ENV>
или 
   export_env <имя_ENV>
для ее дальнейшего использования.

Объясню на примере:
у меня есть несколько серверов (под большой нагрузкой - поетому nginx :-). они отдают статику генерируемую tomcatом. чтоб узнать кто ее сгенерил - я сажу (пока в апаче) ENV в HTTP Header (в примере).

Преимущества такого решения:
ENV - я сажу в start-sripte - который очень редко изменяется. при изменении httpd.conf а копирую один файл на все сервера (без необходимости в обработке напильником на каждом сервере!!! что увеличивало бы не только неудобство но и вероятность ошибки)

поетому был бы рад, если бы Вы имплементировали "частичное" использование заранее задекларированных переменный среды

с ув. Сергей





-----Original Message-----
From: Igor Sysoev <is at rambler-co.ru>
To: nginx-ru at sysoev.ru
Date: Wed, 15 Jul 2009 12:32:09 +0400
Subject: Re: ENV в nginx.conf

> On Wed, Jul 15, 2009 at 12:06:08PM +0400, Михаил Монашёв wrote:
> 
> > Здравствуйте, Алексей.
> > 
> > Мне кажется, что иметь конфиг, которые зависит от очень многих внешних
> > воздействий не совсем удобно. Например, работавший nginx вдруг при
> > рестарте сервера не поднимается. А потом оказывается, что кто-то
> > когда-то что поменял (не в конфиге) и забыл проверить после этого
> > работоспособность nginx-а. Т.е. конфигурить надо конфигом, а не как-то
> > или где-то ещё.
> 
> Ну в общем, да. На мой взгляд, именно этим переменные среды неудобны.
> Наоборот, переменные можно задать в конфиге (с некоторыми ограничениями):
> http://sysoev.ru/nginx/docs/ngx_core_module.html#env
> 
> > AK> кстати смотрю и не понятно - а почему нету такого до сих пор, реально
> > AK> ведь там ваще не сложно реализовать вроде бы
> > 
> > >> в моем частном случае, я думал вынести header в include, а вот
> > >>  if() логику - таки похоже прийдется генерить скриптом - хотя это
> > >> на мой взгляд не самое лучшее решение.
> > >>
> > >> все таки очень не хватает ENV!!!
> > >> не уже ли это сложно имплементировать?
> > >>
> > >> еще раз спасибо
> > 
> > >>> Генерите конфиг скриптом, который будет прописывать в конфиг нужные
> > >>> значения.
> > >>>
> > >>> x> что то не могу найти возможности доступа в nginx.conf к
> > >>> x> переменным среды. т.е я не хочу передавать переменные скриптам, а в
> > >>> x> использовать их в блоке if()-nginx.conf. (или как в етом примере -
> > >>> x> садить header)
> > >>>
> > >>> x> пробую напр. так:
> > >>> x> $ HNAME=web1  ../nginx/sbin/nginx -t
> > >>> x> [emerg]: directive "add_header" is not terminated by ";" in nginx.conf:21
> > >>> x> configuration file ../nginx/conf/nginx.conf test failed
> > >>>
> > >>> x> в конфиге:
> > >>> x>    21      add_header  X-Gererator   ${ENV:HNAME} ;
> > >>> x> пробовал и так:
> > >>> x>    21      add_header  X-Gererator   $ENV{HNAME} ;
> > >>>
> > >>> x> все это не катит.
> > >>> x> а как Правильно?
> > >>> x> спасибо.
> > 
> > 
> > 
> >   
> > 
> > --
> > 
> > С уважением,
> > Михаил Монашёв, SoftSearch.ru
> > mailto:postmaster at softsearch.ru
> > ICQ# 166233339
> > http://michael.mindmix.ru/
> > Без бэкапа по жизни.
> > 
> 
> -- 
> Игорь Сысоев
> http://sysoev.ru
> 






More information about the nginx-ru mailing list