ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2022-04-08 12:00:34  阅读:221  来源: 互联网

标签:0.0 ll server warn nginx host 报错 localhost


出现这个问题,是不影响服务器正常使用的,但是作为程序员,看不惯有“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

标签:0.0,ll,server,warn,nginx,host,报错,localhost
来源: https://www.cnblogs.com/942267027wzmblog/p/16115314.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有