配置Nginx反向代理实现Jenkins端口80映射至8080遇问题求助
解决Nginx反向代理Jenkins仍只能通过8080访问的问题
核心问题排查与解决步骤:
- 确保Nginx自定义配置已启用
Nginx默认只会加载sites-enabled目录下的配置文件,你在sites-available里添加的配置需要创建软链到sites-enabled才能生效,同时要禁用默认的欢迎页配置:
- 创建软链:
sudo ln -s /etc/nginx/sites-available/你的配置文件名 /etc/nginx/sites-enabled/ - 删除默认配置软链:
sudo rm /etc/nginx/sites-enabled/default
- 修正反向代理配置(针对IP访问场景)
因为你还未绑定子域名,直接用EC2公网IP访问的话,配置里必须明确指定server_name为你的EC2 IP,否则Nginx会 fallback 到默认欢迎页配置。参考正确配置:
server { listen 80; server_name 你的EC2公网IP; # 替换为实际IP location / { proxy_pass http://localhost:8080; # 传递必要的请求头,避免Jenkins出现跳转或资源加载问题 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
- 验证并重载Nginx配置
- 先检查配置语法是否正确:
sudo nginx -t,出现test is successful才算正常 - 重载生效配置:
sudo systemctl reload nginx
- 关于URL指定的说明
- 当前未绑定子域名的情况下,不需要指定jenkins.acue.io,只需要确保Nginx配置里的
server_name指向你的EC2 IP即可通过IP:80访问Jenkins - 后续绑定子域名后,需要做两件事:
- 将Nginx配置的
server_name改为jenkins.acue.io - 进入Jenkins后台「系统管理」→「系统配置」,设置Jenkins URL为
http://jenkins.acue.io(若后续配置HTTPS则改为https),否则Jenkins页面内的链接可能仍会指向8080端口
- 将Nginx配置的
- 检查网络访问权限
- 确认EC2安全组已添加入站规则:允许TCP 80端口的访问(来源可设为0.0.0.0/0或指定IP段)
- 若服务器启用了本地防火墙(如ufw),需开放80端口:
sudo ufw allow 80/tcp
内容的提问来源于stack exchange,提问作者Carl Bruiners
相关产品推荐
相关产品推荐

