You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NGINX server name冲突求助:多域名指向同一目录失败

解决Nginx "conflicting server name" 报错的方案

1. 排查全量Nginx配置中的重复域名

Nginx会加载/etc/nginx/conf.d/、/etc/nginx/sites-enabled/下的所有配置文件,以及主配置/etc/nginx/nginx.conf中include指令引入的内容。

  • 用命令全局搜索目标域名,定位重复配置:
    grep -r "domain.de\|www.domain.de" /etc/nginx/
    
    找到重复出现该域名的配置文件后,要么删除冗余的server块,要么将所有指向同一目录的域名合并到同一个server块中。

2. 检查Django项目的Nginx配置

确认Django项目的Nginx配置里,server_name字段是否包含domain.de或www.domain.de。如果有冲突,要么修改Django配置的server_name,要么将这两个域名统一加到静态文件的server块(即你当前提供的配置)中,保证同一个域名仅在一个server块中声明。

3. 清理Certbot残留配置

即便你已移除SSL配置代码,仍可能存在残留文件(比如/etc/nginx/sites-enabled/中Certbot生成的配置、conf.d下的SSL相关文件)。

  • 列出所有启用的配置文件:
    ls -l /etc/nginx/sites-enabled/
    
    删除与Certbot相关的冗余文件后,再进行后续操作。

4. 正确配置多域名指向同一目录

若要让多个域名(比如domain.de和xxx.de)指向同一目录,无需单独创建server块,直接将所有域名添加到同一个server块的server_name字段即可:

server {
    listen 80;
    listen [::]:80;
    # 把所有需要指向该目录的域名全部列在这里
    server_name domain.de www.domain.de xxx.de www.xxx.de;
    error_log /var/log/nginx/Domain.error.log;

    root /var/www/domain.de;

    index index.html;

    location / {
          try_files $uri $uri/ =404;
     }
}

5. 验证配置并重启Nginx

修改完成后,先验证配置合法性:

nginx -t

若提示test is successful,再重启Nginx生效:

systemctl restart nginx

内容的提问来源于stack exchange,提问作者FLYAX

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:08:20