Все примеры, которые я видел, использовали "include something.conf" в блоке http.
Можно ли использовать "include something.conf" в блоке сервера? Если да, то где лучше всего сохранить конф?
Например:
server {
listen 80;
server_name example.com;
include (where)/somethingcool.conf
}
Вы можете положить файл куда хотите.
Если вы используете родственник путь, однако, тогда он будет относиться к каталогу конфигурации nginx (например, /etc/nginx
в Linux, /usr/local/etc/nginx
на BSD и т. д.).
Я лично создаю каталог /etc/nginx/includes
и поместите туда эти биты конфигурации. Например:
server {
server_name deploy.example.com;
include includes/listen-80;
include includes/letsencrypt;
return 301 https://$host$request_uri;
}
куда /etc/nginx/incldues/listen-80
содержит:
listen 80;
listen [::]:80;
И /etc/nginx/includes/letsencrypt
содержит:
location /.well-known/acme-challenge/ {
root /var/www;
try_files $uri =404;
}
Конечно, у меня есть много других подобных конфигурационных битов.
@michaelhampton ответил на вопрос, который, как мне показалось при первом прочтении, вы тоже задавали. Как показывает его пример, вы можете использовать include
директива в server
блокировать. Фактически вы можете использовать его в любом блоке, так что использование его в серверном блоке тоже нормально.