nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法
1 概述
最近在用OpenResty写一个服务器,在自己电脑上没有出现问题,在布置时出现了bind() to 0.0.0.0:80 failed 的错误。上网查阅资料,知晓是默认端口80被占用,根据占用的情况不同又分为了3中解决办法。
1.1 普通程序或服务占用
1、按键盘 WIN + R 打开运行界面,输入cmd,确认,打开管理员界面
2、输入 netstat -aon | findstr :80
查找端口占用情况,找到提示占用的端口号0.0.0.0:80
3、输入 tasklist|findstr “1884”
找到1884端口对应的服务名称,为httpd.exe
4、然后在计算机的服务中停止对应的服务,解除占用
5、最后:将服务停止之后Nginx就能正常启动了。
但是有时我们发现是系统占用了80端口,这是就需要换一种解决办法。
1.2 系统占用
1、按照1.1的前两个操作,查看80端口的占用情况
2、输入 tasklist|findstr “4” 查看服务名称
表示是系统占用
3、查看HTTP服务
但是在任务管理器的服务里面并没有看到pid为4的进程,从网上得知应该是 HTTP 服务的问题
输入netsh http show servicestate
4、svchost占用80端口
在服务里找到这一PID,点击详细信息右键进入对应的文件位置
应该是这个系统进程占用了80端口
5、修改注册表
cmd输入regedit 、打开注册表找到
双击start修改为0
6、重启
重启nginx,如果还是重启失败,则输入 netstat -ano|findstr “80”,查看是否又被其它程序占用,继续上面的操作。
1.3、修改Nginx 的默认端口
nginx的配置默认的是80端口,直接换一个默认端口,啥问题就没有了~
1、打开Nginx的配置文件 nginx.conf
2、修改默认端口的值即可
需要注意:如果你的server中没有 listen字段,默认的还是80的端口,我没有找到修改的地方,应该是程序内部给写死了。
感谢大家,我是假装很努力的YoungYangD(小羊)。
参考资料:
https://blog.****.net/zengwende/article/details/86612463
https://www.cnblogs.com/wutongshu-master/p/11889574.html
https://blog.****.net/qiushuang_0425/article/details/81346868