nginx:[警告]服务器名称冲突

问题描述 投票:0回答:1

我正在尝试部署前端、后端、db 和 nginx 容器以使两个网站正常工作(kittygram2.ddns.net 和 nikitushu2.ddns.net)。

在 /etc/nginx/sites-available/ 中只有一个文件 - 默认。

/etc/nginx/sites-available/default:

server {
    listen 80;
    server_name nikitushu2.ddns.net kittygram2.ddns.net;

    # Redirect HTTP to HTTPS
    return 301 https://$host$request_uri;
}

server {
    server_name 84.201.155.126 nikitushu2.ddns.net;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version  1.1;
        proxy_cache_bypass  $http_upgrade;

        proxy_set_header Upgrade           $http_upgrade;
        proxy_set_header Connection        "upgrade";
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Port  $server_port;
    }




    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/nikitushu2.ddns.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/nikitushu2.ddns.net/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


  }

server {
    server_name 84.201.155.126 kittygram2.ddns.net;

    location / {
        proxy_pass http://127.0.0.1:9000;
        proxy_http_version  1.1;
        proxy_cache_bypass  $http_upgrade;

        proxy_set_header Upgrade           $http_upgrade;
        proxy_set_header Connection        "upgrade";
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host  $host;
        proxy_set_header X-Forwarded-Port  $server_port;
    }


    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/kittygram2.ddns.net/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/kittygram2.ddns.net/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

sudo nginx -t:

nginx: [warn] conflicting server name "84.201.155.126" on 0.0.0.0:443, ignored
nginx: [warn] conflicting server name "84.201.155.126" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "84.201.155.126" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "kittygram2.ddns.net" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "84.201.155.126" on 0.0.0.0:80, ignored
nginx: [warn] conflicting server name "nikitushu2.ddns.net" on 0.0.0.0:80, ignored
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

我尝试修复默认文件,但没有任何效果。

python docker nginx gunicorn
1个回答
0
投票

我认为同一服务器中有多个关联的 Web 服务器配置文件。

如果您想在 HTTP 和 HTTPS 上提供相同的内容,请考虑使用带有两个监听指令的单个服务器块:

server {
    listen 80;
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/ssl_certificate.crt;
    ssl_certificate_key /path/to/ssl_certificate.key;
}

进行必要的更改后,保存配置文件,然后测试 Nginx 配置以确保其有效:

$ sudo nginx -t

如果测试成功,重新加载Nginx以应用新配置:

$ sudo 服务 nginx 重启

© www.soinside.com 2019 - 2024. All rights reserved.