Назад | Перейти на главную страницу

Используйте «include» в серверном блоке nginx, но где сохранить?

Все примеры, которые я видел, использовали "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 блокировать. Фактически вы можете использовать его в любом блоке, так что использование его в серверном блоке тоже нормально.