nginx默认端口80被占用(报错bind() to 0.0.0.0:80 failed)的解决办法

当遇到nginx启动时提示bind() to 0.0.0.0:80 failed错误,通常是由于端口80被其他程序或系统占用。解决方法包括:1) 查找并停止占用端口的普通程序或服务;2) 如果是系统占用,可能需要修改注册表禁用HTTP服务;3) 直接修改nginx配置文件,更换默认端口。通过这些步骤,可以成功释放或绕过80端口,使nginx正常启动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.csdn.net/zengwende/article/details/86612463
https://www.cnblogs.com/wutongshu-master/p/11889574.html
https://blog.csdn.net/qiushuang_0425/article/details/81346868

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值