Nginx服务器名称处理异常及配置冲突问题修复咨询
嘿,我来帮你搞定这个Nginx配置冲突的问题~ 先给你理清楚问题根源:你现在有两个Nginx server块(原来的应用配置文件和default配置文件)都包含了那些新增的域名,导致Nginx启动时检测到重复的服务器名,直接忽略了其中一组配置,这就是为什么新增的域名没法正常指向应用,还会报conflicting server name错误。
下面是具体的修复步骤,一步步来就行:
统一应用配置的server_name
打开你那个包含前8个正常域名(sandbox.delfy.club等)的sites-enabled应用配置文件,把所有新增的域名(比如你提到的sbaz...这类)都添加到它的server_name指令里,确保所有需要指向应用的域名都集中在这里,不要分散到多个配置文件里。清理default配置的冲突域名
打开default配置文件,把那些新增的域名从它的server_name中移除,让default配置只处理真正的默认请求——比如可以把它的server_name设为_(表示匹配所有未被其他server块匹配的请求),或者保留默认的空值,这样就不会和应用配置的域名产生冲突了。确保证书正确关联到应用配置
因为你之前扩展了证书,现在要确认应用配置文件里的SSL证书路径是正确的:找到ssl_certificate和ssl_certificate_key这两个指令,把它们的路径指向你重新签发的新证书文件(如果是用Certbot这类工具,可能需要重新运行工具来自动配置,避免手动输错路径)。测试配置并重启Nginx
先执行nginx -t命令验证配置语法,确保不再出现conflicting server name的错误提示;如果测试通过,再执行systemctl reload nginx(或者根据你的系统用service nginx reload)让新配置生效。
额外提醒下:如果是用Let's Encrypt的Certbot工具,推荐直接运行certbot --nginx命令,它会自动帮你更新应用配置的server_name、关联新证书,还能自动验证配置,比手动修改更省心~
备注:内容来源于stack exchange,提问作者Jerome

