Можно ли указать root
путь относительно содержащегося файла conf?
Мы разрабатываем веб-приложение и храним app-nginx.conf
файл со специфичной для приложения конфигурацией в каталоге проекта. Я хочу иметь возможность включить этот файл в основной nginx.conf
и иметь root
путь, правильно ссылающийся на требуемый подкаталог проекта. Пример:
# /etc/nginx/nginx.conf
http {
include /absolute/path/to/app/app-nginx.conf
}
# /absolute/path/to/app/app-nginx.conf
server {
server_name localhost;
listen 9090;
root ./app;
}
После запуска nginx с аналогичной конфигурацией nginx пытается определить ./app
путь относительно каталога установки nginx ( /usr/local/Cellar/nginx/1.4.3/
в моем случае), а не каталога приложения.
--prefix
может повлиять на другие серверы nginx и, с моей личной точки зрения, управлять им немного сложнее по сравнению с файлом конфигурации. И nginx не позволяет создавать пользовательские переменные сset
директивой внеserver
контекста, поэтому я не могу переместить абсолютный путь из моего файла app-nginx.conf.include
иssl_certificate
, например, но будет использовать префикс dir для таких параметров, какroot
. Кажется, я не придумываю полный список того, какой вариант используется.Я не нашел способа использовать относительные пути или определить глобальные переменные, но этот маленький трюк решает мою проблему.
источник
map
директиву с однимdefault
значением, которая будет играть роль переменной для меня.