Re: Re[2]: ENV в nginx.conf

Alexey V. Karagodov kav at karagodov.name
Wed Jul 15 15:36:13 MSD 2009


On 15.07.2009, at 14:16, xinu wrote:

> Алексей, Игорь,  Здравствуйте!
>
> как Вы полагаете, было ли бы возможно имплементировать не всех 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