Nginx启动显示80端口占用问题的解决方案

问题描述

今天重启了服务器,在启动nginx服务的时候,显示启动失败,报错如下。

sudo systemctl status nginx
Nginx

问题出现在哪里呢?看错误日志描述,Nginx服务启动失败,主要原因是无法绑定到端口80.这通常就是由于该端口已经被其他进程占用而导致的。

解决方案

要解决此问题,先确认端口80是否被其他进程或者程序占用,可以使用一下命令来检查。

sudo netstat -tuln | grep :80
# 或者下面命令也可以查看是哪个应用在占用80
sudo lsof -i:80

该命令会列出所有正在监听80端口的进程和应用。

17339830003069
17339830562275

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

sudo systemctl status apache2

17339833577328

知道问题所在就好办了,简单粗暴的就是直接杀死占用80端口的进程。这里需要永绝后患,直接把Apache的服务停掉,并且不让随系统自动启动。

sudo systemctl stop apache2  # 停止Apache服务
sudo systemctl status apache2  # 查看Apache服务状态
sudo systemctl disable apache2  # 取消开机启动
sudo systemctl enable apache2 # 开机自启动运行服务,可以开启 

17339838896200

确认Apache服务关停后,再次启动nginx,成功!博客又能正常打开了😄

sudo systemctl start nginx  # 启动服务
sudo systemctl status nginx  # 查看服务状态

17339840881220

一切正常,搞定收工!

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注