nginx 默认服务器不工作

nginx 默认服务器不工作

我使用的是 Debian,最新的 dotdeb nginx-lite。我读到,server如果域没有特定的服务器部分,则 nginx 找到的第一个部分将用作后备/默认部分。

我从我的安装中删除了sites-available,因为我对一切与 http 相关的内容sites-enabled使用了专用的挂载。/www

/etc/nginx/nginx.conf有这些行,包括其他配置:

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

default.conf 如下所示:

server {
        server_name 0.0.0.0;
        listen 0.0.0.0:80;
        rewrite ^ http://mymaintarget.com permanent;
}

这对我来说不起作用。我仍然收到此警告:

Restarting nginx: nginxnginx: [warn] conflicting
server name "0.0.0.0" on 0.0.0.0:80, ignored

我很确定没有其他服务器部分,并且 default.conf 是第一个包含/使用的。

有人知道哪里出了问题或者配置默认服务器的正确方法是什么?

更新完整配置文件:

nginx.conf:

user www-data;
worker_processes 8;
pid /run/nginx.pid;

events {
        worker_connections 768;
}

http {
        sendfile on;
        tcp_nopush on;
        tcp_nodelay on;
        keepalive_timeout 10;
        types_hash_max_size 2048;
        server_tokens off;

        include /etc/nginx/mime.types;
        default_type application/octet-stream;

        error_log /var/log/nginx/error.log;

        gzip on;
        gzip_disable "msie6";
        gzip_vary on;


        # Default VirtualHost
        include /www/conf.d/nginx/default.conf;

        # conf.d is empty anyways
        #include /etc/nginx/conf.d/*.conf;

        # VirtualHosts
        include /www/conf.d/nginx/*;
}

默认.conf:

server {
        listen 80 default_server;
        rewrite ^ http://blog.flowl.info permanent;
}

答案1

要设置默认服务器:

server {
    listen 80 default_server;
    rewrite ^ http://mymaintarget.com$request_uri? permanent;
}

default_server 参数将包括任何其他域、ip 等

更多信息nginx

答案2

    # Default VirtualHost
    include /www/conf.d/nginx/default.conf;

    # conf.d is empty anyways
    #include /etc/nginx/conf.d/*.conf;

    # VirtualHosts
    include /www/conf.d/nginx/*;

“default.conf” 被包含,然后被包含再次/www/conf.d/nginx/*

我删除了第一个包含,并将“default.conf”重命名为“_default.conf”,因此该文件是第一个包含在通配符包含中的文件。

相关内容