直接修改listen指令即可,但须改对站点配置文件位置、用nginx -t验证语法、并开放防火墙/selinux/云安全组对应端口;先用lsof或netstat查清80/443占用进程,再停用冲突服务或改listen为8080等端口。

直接改 listen 指令就行,但得改对位置、验语法、放行端口,三步缺一不可。
确认端口是否被占用
80 或 443 被占了,Nginx 就起不来。先查清楚谁在用:
- Linux/macOS:运行
sudo lsof -i :80或sudo netstat -tulpn | grep ':80' - Windows:运行
netstat -ano | findstr :80,再用tasklist | findstr "PID"查进程名 - 看到
nginx、apache2、httpd或node,说明端口已被占用,得先停掉或换端口
修改 Nginx 配置中的 listen 指令
别动主配置文件 /etc/nginx/nginx.conf,优先改站点配置:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
- 打开
/etc/nginx/sites-enabled/default(或你自己的站点配置文件) - 找到类似
listen 80;或listen 443 ssl;的行 - 改成你需要的端口,比如:
listen 8080;(HTTP)或listen 8443 ssl;(HTTPS) - 如果启用了 HTTPS,确保
ssl_certificate和ssl_certificate_key路径仍有效
验证配置并重载服务
改完不能直接重启,必须先检查语法:
- 运行
sudo nginx -t—— 输出 “syntax is ok” 和 “test is successful” 才算通过 - 如果报错,按提示看哪一行(如
nginx.conf:35),重点检查分号、括号、引号是否遗漏 - 确认无误后执行
sudo nginx -s reload或sudo systemctl reload nginx
开放新端口(防火墙与 SELinux)
系统拦着,外面还是访问不到:
-
防火墙:以开放 8080 为例
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanentsudo firewall-cmd --reloadsudo firewall-cmd --query-port=8080/tcp(验证是否生效) -
SELinux(CentOS/RHEL):需授权 Nginx 绑定非标准端口
先装工具:sudo yum install -y policycoreutils-python.x86_64
再加规则:sudo semanage port -a -t http_port_t -p tcp 8080 - 云服务器(如阿里云、腾讯云):别忘了在安全组里手动放行对应端口










