在 nginx 服务器块中使用“include”但保存在哪里?

Cal*_* Hi 6 nginx

我见过的所有示例都在 http 块中使用了“include something.conf”。

是否可以在服务器块中使用“include something.conf”?如果是,保存 conf 的最佳实践在哪里?

例如:

server {
    listen 80;
    server_name example.com;

    include (where)/somethingcool.conf

}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 13

你可以把文件放在任何你想要的地方。

但是,如果您使用相对路径,那么它将相对于 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;
}
Run Code Online (Sandbox Code Playgroud)

其中/etc/nginx/incldues/listen-80包含:

listen 80;
listen [::]:80;
Run Code Online (Sandbox Code Playgroud)

/etc/nginx/includes/letsencrypt包含:

location /.well-known/acme-challenge/ {
    root /var/www;
    try_files $uri =404;
}
Run Code Online (Sandbox Code Playgroud)

当然,我还有很多其他这样的配置位。