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

时间:2016-06-03 21:58:33

标签: django nginx uwsgi

包含所有配置,也传递conf测试。但是Nginx仍然使用/usr/share/nginx/html中的默认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;
    }

}

1 个答案:

答案 0 :(得分:0)

默认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 {
    }
}

感谢root部分server中的nginx将继续提供该目录下的文件,直到您对这些行进行评论为止。这是在加载conf.d之后发生的(如上面的代码段所示)。

无论您在conf.d内更改了哪个文件的最后部分仍将被加载。由于该文件(/etc/nginx/nginx.conf)加载conf.d中的配置。

是的,如果您打算使用server,您肯定应该注明默认nginx