如何修改Jenkins访问URL?EC2实例下Nginx配置问题
解决Jenkins通过域名/子域名访问的Nginx配置问题
方案一:通过子域名 jenkins.mydnsname.com 访问
这种方式与Django应用域名完全分离,逻辑更清晰,配置步骤如下:
配置DNS解析
将子域名jenkins.mydnsname.com指向你的EC2实例公网IP,可通过nslookup jenkins.mydnsname.com验证解析是否生效。添加Nginx Server块
在Nginx配置目录(通常为/etc/nginx/sites-available/)创建单独的Jenkins配置文件,或在现有配置中添加以下server块:server { listen 80; server_name jenkins.mydnsname.com; location / { sendfile off; proxy_pass http://localhost:8080; # 用localhost替代公网IP,避免不必要的跨网络请求 proxy_redirect default; proxy_http_version 1.1; # 上传大小限制 client_max_body_size 10m; client_body_buffer_size 128k; # 超时设置 proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffering off; proxy_request_buffering off; proxy_set_header Connection ""; # 传递必要请求头,确保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 - 重启Nginx:
sudo systemctl restart nginx - 确保EC2安全组开放80端口(HTTP)的入站流量
- 检查Nginx配置语法:
方案二:通过路径 www.mydnsname.com/jenkins 访问
这种方式需同时调整Jenkins上下文路径和Nginx配置,否则会出现静态资源加载错误:
修改Jenkins上下文路径
Jenkins默认使用根路径/,需配置为以/jenkins作为前缀运行:- 若为deb包安装,编辑
/etc/default/jenkins,修改JAVA_ARGS:JAVA_ARGS="-Djava.awt.headless=true --prefix=/jenkins" - 若用systemd管理,编辑
/usr/lib/systemd/system/jenkins.service,修改ExecStart行:ExecStart=/usr/bin/java -Djava.awt.headless=true --prefix=/jenkins -jar /usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 - 重启Jenkins:
sudo systemctl daemon-reload && sudo systemctl restart jenkins
- 若为deb包安装,编辑
更新Nginx Location配置
在Django应用对应的Nginx server块中,替换原location /jenkins配置为:location /jenkins { sendfile off; proxy_pass http://localhost:8080/jenkins; # 必须与Jenkins的prefix一致,末尾保留/jenkins proxy_redirect default; proxy_http_version 1.1; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffering off; proxy_request_buffering off; proxy_set_header Connection ""; 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 - 重启Nginx:
sudo systemctl restart nginx
- 检查Nginx配置:
常见问题排查
- 若配置后仍无法访问,查看Nginx错误日志:
sudo tail -f /var/log/nginx/error.log - 查看Jenkins日志确认启动状态:
sudo tail -f /var/log/jenkins/jenkins.log - 确认EC2安全组允许80端口的入站流量
- 等待DNS解析生效(可能需要数分钟)
内容的提问来源于stack exchange,提问作者Anandu BS
相关产品推荐
相关产品推荐

