在phpStudy_pro中启动WNMP报错/警告 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80

2022/4/9 7:23:09

本文主要是介绍在phpStudy_pro中启动WNMP报错/警告 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

出现这个问题,是不影响服务器正常使用的,但是作为程序员,看不惯有“warning”的瑕疵存在……

 

 搜了很多帖子,发现有很多类似的情况出现,有些是在 Linux 下报这样的错,但我的是在集成环境PHPStudy_pro中启动WNMP出现了这样的提醒。

 

【发现问题】 

在部署服务器时,需要按照本地配置进行编写nginx配置文件,

修改nginx配置参数后,使用nginx -t检查配置.

提示successfull后就可以使用 nginx -s reload来重新加载配置

配置的过程中遇到这样的问题,就是绑定了主机名后,重新加载配置时会出现警告

 

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

 

意思是重复绑定了server name,但这个警告不会影响到服务器运行。而且,这个重复绑定的意思是现在运行的nginx服务和将要加载的新配置中的重复,所以,这个警告其实是不必的。

重启nginx时出现如下警告:

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

 

【问题原因】

原因是 “localhost” 这个域名出现了两次甚至多次,把同一个域名解析到了不同的目录, 一般将配置文件单独分离出来容易出现这个错误。

就是同一个IP或端口号,绑了两三个域名的,要改!

不过这个警告不影响使用,大多数人会忽视它,无视!

 

在给第一个主机设定了default_server的时候,重新加载配置就会出错,

最初就是这个原因,误以为nginx不能在同一ip端口绑定多个域名。

但其实是可以的!!!(我做的在后边,同时一个IP被三个域名解析了:host 、host.ll 、test.ll

一般的办法是杀掉nginx进程重新启动(taskkill-windows下,kill-Linux下),或者先去掉default_server设定,重新加载nginx配置后,再加上,再重新配置。

(这个方法比较麻烦,有大牛级别的方法,欢迎留言提供)

参考:https://www.shirne.com/blog/linux/nginxxunizhujipeizhibeiwang.html

  

【解决方法】

(一)、命令修改

Linux系统环境下,需要查询出现这个域名的文件,使用grep这个命令

grep -r localhost /*nginx的路径*/conf

找到配置文件的位置再进行配置

cd /usr/local/nginx/conf
vi nginx.conf

修改之后重启即可

nginx虚拟主机配置可参考:https://blog.csdn.net/Shiloh_My/article/details/79996426

配置参数的含义可参考:https://blog.csdn.net/qq_37818095/article/details/105515177  (Nginx配置文件 nginx.conf 配置详解)

配置文件的功能注释可参考:https://blog.csdn.net/zhao8848jun/article/details/8254590  (Nginx配置文件功能注释)

(有空了,我再自己整理一个Apache的配置文件相关注释)

 

(二)、文件编辑

 nginx有个默认的端口检测,如443,80等等,它也会报这个错,因为这端口可能被mysql或者redis或者tomcat,https之类的占了

还有127.0.0.1,0.0.0.0,localhost之类的也不要用,迟早会报错。

打开服务器的配置文件,该修改的修改,按照命名规范来操作,

避免出现冲突!

 打开 vhosts 文件夹:phpstudy_pro\Extensions\Nginx1.15.11\conf\vhosts

找到 0localhost_80.conf 文件,把以前的 “server_name localhost” 注释重写或稍作修改均可:

        #为避免冲突警告尽量避免使用 localhost、127.0.0.1、0.0.0.0等等之类
        #server_name  localhost;
         server_name host host.ll test.ll;

这就是我做的,一个IP同时被三个域名解析了:host 、host.ll 、test.ll

 

紧接着,最重要的一步就是:还需要配置linux / win下边的host文件

 

附nginx本地hosts映射

#域名解析IP地址
#本地IP->hosts映射
127.0.0.1    host
127.0.0.1    host.ll
127.0.0.1    test.ll

这就是我做的,一个IP同时被三个域名解析的hosts映射:host 、host.ll 、test.ll

 

Linux系统和Windows系统是一样的,文件都是hosts,路径分别是在/etc/hosts  和 C:\Windows\System32\drivers\etc\hosts(通常是被隐藏起来的文件)

 

 参考:https://www.cnblogs.com/ydymz/p/9542912.html

 

 

OK!如此配置完毕,一切正常运行:

不在有弹出warning的弹框

 

测试本地host ,如果使用Google浏览器的话需要把 http 也加入地址中:http:test.ll  这是避免浏览器自动使用搜索引擎来搜索地址 test.ll ,

 

 

 

测试成功的结果如下(自己写的一个index.html 测试页面):

 

 

 

 

 

 

 

 

 

【小结】

出现这样的问题,就是命名不规范的原因,现在nginx 1.14/15 是警告/报错,以后注意规范自己的命名,不然wran迟早会变成error的。

也提醒我们开发时,要时刻规整自己的习惯,按照规范化标准来要求自己,慢慢养成好习惯,聚沙成塔、集腋成裘,但要避免积重难返!

 

 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

凡事预则立不预则废,养成复盘总结的微小习惯:改变自己,改变世界,把握当下,把握现在,每天前进1%,享受“复利式成长”!

Anthony_GM

2022-4-8 11:57:02



这篇关于在phpStudy_pro中启动WNMP报错/警告 nginx: [warn] conflicting server name "localhost" on 0.0.0.0:80的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程