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、然后在计算机的服务中停止对应的服务,解除占用
nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第1张图片nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第2张图片
5、最后:将服务停止之后Nginx就能正常启动了。

但是有时我们发现是系统占用了80端口,这是就需要换一种解决办法。

1.2 系统占用

1、按照1.1的前两个操作,查看80端口的占用情况

nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第3张图片
2、输入 tasklist|findstr “4” 查看服务名称
nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第4张图片
表示是系统占用

3、查看HTTP服务
但是在任务管理器的服务里面并没有看到pid为4的进程,从网上得知应该是 HTTP 服务的问题

输入netsh http show servicestate
nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第5张图片
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
nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第6张图片
2、修改默认端口的值即可

nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法_第7张图片
需要注意:如果你的server中没有 listen字段,默认的还是80的端口,暂时没有找到修改默认值的地方,应该是程序内部给写死了。

感谢大家,我是假装很努力的YoungYangD(小羊)

参考资料
https://blog.csdn.net/zengwende/article/details/86612463
https://www.cnblogs.com/wutongshu-master/p/11889574.html
https://blog.csdn.net/qiushuang_0425/article/details/81346868

你可能感兴趣的:(其它)