В conf-файле nginx есть ли способ указать include
другой conf-файл относительно текущего conf-файла?
Я хотел бы написать:
server {
listen 80;
server_name localhost;
include "../apis/basic.conf";
...
}
nginx
configuration
Алекс Ротберг
источник
источник
include apis/basic.conf;
вероятно, просто сработает. Например, это включение относится к корню конфигурации, поэтому включает этот файл .Ответы:
Документы Nginx для
include
директивы не документируют, как обрабатываются относительные пути (начиная с версии 1.9.15). Мое чтение кода C состоит в том, что путь должен быть абсолютным или относительным к пути префикса, как предложил Алексей Тен в комментарии.Вот связанная ссылка на исходный код .
источник
-p
попытка в.
том числе./nginx.conf
из файла конфигурации, хранящегося в/tmp
. Он ошибается, говоря, что не может найти/tmp/./nginx.conf
. Либо-p
опция не делает этого, либо включение включает только относительно файла конфигурации, либо мой nginx не работает.-p
Опция влияет только тогда, когдаnginx
команда ищет файл конфигурации. Использованиеnginx -p . -c ./nginx.conf
заставит команду nginx искать./nginx.conf
, в противном случае без нее будет найден путь префикса для./nginx.conf
.По аналогии с тем, что прокомментировал Алексей Тен, будет использоваться префикс по умолчанию. Но в соответствии с этой статьей StackOverflow: https://stackoverflow.com/a/25486871/1684819 можно указать параметр -p, чтобы объявить, куда будут ссылаться все относительные пути вместо пути компилирования по умолчанию.
источник