Nginx 包括来自 conf.d 的 conf 但仍加载默认设置

ray*_*man 5 django nginx uwsgi

所有配置都被包含在内,并且 conf 测试也通过了。但是 Nginx 仍然提供来自 的默认 HTML /usr/share/nginx/html,而不是来自 conf.d 目录中 conf 文件的位置根。

conf.d 目录下的conf 文件

upstream django {
    server          unix:///tmp/server.sock;
}

server {
    listen          80;
    server_name     server.test.com;
    access_log      /srv/source/logs/access-nginx.log;
    error_log       /srv/source/logs/error-nginx.log;

    location / {
        uwsgi_pass      django;
        include         /srv/source/conf/uwsgi/params;
    }

    location /static/ {
        root            /srv/source/;
        index           index.html index.htm;
    }

    location /media/ {
        root            /srv/source/media/;
        index           index.html index.htm;
    }

    # alias favicon.* to static
    location ~ ^/favicon.(\w*)$ {
        alias /srv/source/static/favicon.$1;
    }

}
Run Code Online (Sandbox Code Playgroud)

gro*_*mal 3

默认nginx配置位于/etc/nginx/nginx.conf. 默认情况下,该文件包含以下几行(至少在基于 rhel 和基于 arch 的发行版上是这样):

include /etc/nginx/conf.d/*.conf;

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  _;
    root         /usr/share/nginx/html;

    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location / {
    }

    error_page 404 /404.html;
        location = /40x.html {
    }

    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
}
Run Code Online (Sandbox Code Playgroud)

感谢该部分root中的,将继续提供该目录下的文件,直到您评论我们的这些行。这发生在加载之后(如上面的代码片段所示)。servernginxconf.d

无论您在内部进行什么更改,conf.d文件的最后部分仍然会被加载。因为正是该文件 ( /etc/nginx/nginx.conf) 加载了conf.d.

是的,server如果您打算使用nginx.