Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Re[2]: ENV в nginx.conf
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@xxxxxxxxxxxxx>
To: nginx-ru@xxxxxxxxx
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@xxxxxxxxxxxxx
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
--
Игорь Сысоев
http://sysoev.ru
|