You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止Nginx监听80端口?附相关配置与监听状态

Nginx 监听80端口的原因及解决方法

问题背景

我用Nginx将8545端口路由到8845端口,配置文件default.conf如下:

server {
  listen 8545;
  listen [::]:8545;
  server_name 194.***.***.***;
  location / {
    auth_basic "protected gateway area";
    auth_basic_user_file /etc/apache2/.htpasswd;
    proxy_pass http://127.0.0.1:8845;
    proxy_read_timeout 600s;
  }
}

但Nginx仍在监听80端口(netstat输出显示同一Nginx主进程同时监听8545和80端口),需要将80端口用于其他用途,想知道原因和解决办法。

netstat -ltupn截取输出:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
...
tcp        0      0 0.0.0.0:8545            0.0.0.0:*               LISTEN      195197/nginx: maste
...
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      195197/nginx: maste
...
tcp6       0      0 :::8545                 :::*                    LISTEN      195197/nginx: maste
tcp6       0      0 :::80                   :::*                    LISTEN      195197/nginx: maste
...

原因分析

Nginx会加载主配置文件中指定的所有配置片段,你的default.conf只配置了监听8545端口,但系统中大概率存在另一个包含listen 80;指令的server配置(比如默认安装时自带的默认站点配置),被Nginx一同加载,导致进程监听80端口。

常见触发场景:

  • Nginx主配置文件(通常是/etc/nginx/nginx.conf)通过include指令引入了其他目录(比如/etc/nginx/sites-enabled/或/etc/nginx/conf.d/)下的配置文件
  • 这些目录里存在默认的server配置,其中包含listen 80;和listen [::]:80;指令

解决步骤

  1. 检查主配置的引入规则
    打开Nginx主配置文件:

    sudo nano /etc/nginx/nginx.conf
    

    查找类似如下的include行:

    include /etc/nginx/sites-enabled/*;
    include /etc/nginx/conf.d/*.conf;
    

    这些就是Nginx额外加载的配置文件路径。

  2. 定位并修改监听80端口的配置
    进入上述include指定的目录,逐个检查里面的配置文件,找到包含listen 80;或listen [::]:80;的server块:

    • 直接删除这个多余的server块
    • 或者注释掉所有listen 80;相关的指令(在行前加#)
    • 也可以将其监听端口修改为其他未被占用的端口
  3. 验证配置合法性
    修改完成后,执行以下命令检查配置是否正确:

    sudo nginx -t
    

    输出显示test is successful则说明配置有效。

  4. 重新加载Nginx生效
    执行命令重新加载配置,使修改生效:

    sudo systemctl reload nginx
    # 或者使用
    sudo nginx -s reload
    
  5. 验证监听状态
    再次执行netstat命令确认80端口已不再被Nginx监听:

    sudo netstat -ltupn | grep nginx
    

内容的提问来源于stack exchange,提问作者M. Akar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 02:55:17