当Nginx与后台应用使用相同端口时会导致冲突,无法同时运行。以下是几种解决方案:
/etc/nginx/nginx.conf
或/etc/nginx/sites-enabled/default
)nginx
server {
listen 8080;
server_name localhost;
...
}
bash
sudo systemctl restart nginx
如果希望Nginx继续监听80/443端口并代理到后端应用:
修改Nginx配置:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:8081; # 后端应用实际端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
如果服务器有多个IP:
server {
listen 192.168.1.100:80;
...
}
使用以下命令找出哪个进程占用了端口:
sudo netstat -tulnp | grep :80
# 或
sudo lsof -i :80
bash
sudo nginx -t
选择哪种方案取决于具体需求和环境配置。反向代理方案(方案三)是最常见的生产环境解决方案。