Я пытаюсь оптимизировать мои конфиги nginx, чтобы можно было установить одну переменную, и все пути к местам обновились бы автоматически. У меня есть четыре строки в вопросе:
server_name php.domain.com;
root /srv/web/vhosts/php/web;
error_log /srv/web/vhosts/php/logs/error.log;
access_log /srv/web/vhosts/php/logs/access.log;
Чего я хотел бы добиться, так это установить одну переменную (в данном случае 'php') и включить ее в config.
set $variable "php";
server_name $variable.domain.com;
root /srv/web/vhosts/$variable/web;
error_log /srv/web/vhosts/$variable/logs/error.log;
access_log /srv/web/vhosts/$variable/logs/access.log;
Однако кажется, что nginx игнорирует переменные в этой конфигурации. Я делаю что-то неправильно или невозможно использовать переменные в путях расположения?
access_log
/error_log
работать с переменными, но с некоторыми ограничениями.server_name
не может содержать переменные.$hostname
. Обновлен ответ, чтобы прояснить это поведение.$hostname
это единственная допустимая переменная. github.com/nginx/nginx/blob/… На самом деле, это больше похоже на магическую константу, а не на реальную переменную