nginx启动服务提示98: Address already in use错误的解决

(编辑:jimmy 日期: 2025/1/9 浏览:2)

前言

今日到公司就被其他人告知官网所有页面打开都是502。平常都是正常的怎么就突然页面就502了呢,下面就开始troubleshooting。下面来看看详细的解决过程:

发现问题

公司web服务器,是搭建在centos system 上的lnmp环境,首先网站502肯定是服务器端错误,首先想到是不是nginx服务挂掉了,然后执行service nginx status,查看下nginx的状态:nginx is stopped,果然是nginx服务挂了。

执行service nginx start启动nginx服务,无法开启,提示错误如下:

Starting nginx: nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) 
nginx: [emerg] still could not bind()

大概意思就是:端口地址已被使用。很大的可能nginx服务进程卡死了,导致80端口被占用。

解决办法

首先用lsof -i :80查看80端口被什么程序占用,返回结果如下,

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 3274 root 6u IPv4 10664 0t0 TCP :http (LISTEN)
nginx 3547 nginx 6u IPv4 10664 0t0 TCP :http (LISTEN)
.....

发现是nginx进程占用了80端口,所以我们把nginx进程kill掉,重新启动服务。

命令如下(kill 掉所有的nginx进程):

kill -9 lsof -i :80 |grep nginx |grep -v grep|awk '{print $2}'
service nginx start
Starting nginx...    [ OK ] 

OK,nginx服务已经成功启动!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

一句话新闻

高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。