开启Nginx时端口被占用提示:Address already in use

  

开启 Nginx 时,有时会出现端口被占用的提示,这是因为该端口已经被其他进程占用了,需要找出占用端口的进程并终止该进程,或是修改 Nginx 的监听端口,下面详细讲解该问题的解决方法。

示例一:找出占用端口的进程并终止

  1. 在 Linux 上使用如下命令查看占用端口的进程信息:

shell
sudo netstat -tlnp | grep :80

其中,80 是 Nginx 默认的监听端口号,可以根据实际情况把 80 替换成其他端口号。

  1. 执行上述命令后,系统会返回占用该端口的进程的信息,如下所示:

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1309/nginx: master

其中,1309 是占用端口的进程的 PID,可以通过下面的命令杀掉该进程:

shell
sudo kill -9 1309

执行上述命令后,占用该端口的进程就被终止了。

  1. 然后再次尝试启动 Nginx 服务即可。

示例二:修改 Nginx 的监听端口

如果无法杀掉占用端口的进程,或者该进程不是自己需要的服务,那么可以尝试修改 Nginx 的监听端口。

  1. 打开 Nginx 的配置文件,一般在 /etc/nginx/nginx.conf/usr/local/nginx/conf/nginx.conf 中,根据实际情况进行查找。

  2. 找到监听端口的配置项,一般是 listen,修改端口号即可,示例代码如下:

nginx
server {
listen 8080;
server_name localhost;
location / {
root /var/www/html;
index index.html;
}
}

  1. 然后重新启动 Nginx 服务,即可成功启动服务并监听新的端口。

总之,出现“Address already in use”的提示时,要么找出占用该端口的进程并终止,要么修改 Nginx 的监听端口,二者皆可解决该问题。

相关文章