directive "env"
Igor Sysoev
igor на sysoev.ru
Вс Авг 21 08:54:29 UTC 2011
On Sat, Aug 20, 2011 at 06:03:32PM -0400, Dmitry Veselov wrote:
> объясните, пожалуйста, принцип
> действия директивы env
>
> в секции main:
> env domain=192.168.1.123;
>
> в конфиге домена
> listen $domain:443;
>
> получается вот что:
> host not found in "$domain:443" of the "listen" directive in
> /etc/nginx/conf.d/domain.conf:6
>
> что я делаю не так?
Сам nginx не использует переменные среды, то есть, то, что в шелле можно
поставить или посмотреть с помощью команд set/env.
Дело в том, что nginx обуляет всё среду за исключением переменной TZ,
но некоторыми библиотеками можно управлять этими переменными, поэтому
и появилась директива env:
http://sysoev.ru/nginx/docs/ngx_core_module.html#env
Переменные вида $... - это внутренние переменные nginx'а, существующие
во время исполнения запроса. На стадии конфигурации этих переменных нет.
> ps: задача на нескольких серверах
> поддерживать одинаковые конфиги, но с
> адресами ssl это не так просто...
listen $hostname:443;
Нужно заметить, что $hostname в данном случае не обычная переменная
nginx'а, а хак, своего рода макро-подстановка.
--
Игорь Сысоев
http://sysoev.ru
Подробная информация о списке рассылки nginx-ru