问题描述
今天重启了服务器,在启动nginx服务的时候,显示启动失败,报错如下。
sudo systemctl status nginx

问题出现在哪里呢?看错误日志描述,Nginx服务启动失败,主要原因是无法绑定到端口80.这通常就是由于该端口已经被其他进程占用而导致的。
解决方案
要解决此问题,先确认端口80是否被其他进程或者程序占用,可以使用一下命令来检查。
sudo netstat -tuln | grep :80
# 或者下面命令也可以查看是哪个应用在占用80
sudo lsof -i:80
该命令会列出所有正在监听80端口的进程和应用。


可以看到就是Apache的服务在使用80端口,关键我貌似也没有什么网站服务在使用apahce啊。估计是linux发行版默认自带的?不管了,先看下Apache服务的状态:
sudo systemctl status apache2

知道问题所在就好办了,简单粗暴的就是直接杀死占用80端口的进程。这里需要永绝后患,直接把Apache的服务停掉,并且不让随系统自动启动。
sudo systemctl stop apache2 # 停止Apache服务
sudo systemctl status apache2 # 查看Apache服务状态
sudo systemctl disable apache2 # 取消开机启动
sudo systemctl enable apache2 # 开机自启动运行服务,可以开启

确认Apache服务关停后,再次启动nginx,成功!博客又能正常打开了😄
sudo systemctl start nginx # 启动服务
sudo systemctl status nginx # 查看服务状态

一切正常,搞定收工!