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

NGINX反向代理Jenkins配置问题:静态资源无法加载

嘿,我碰到过一模一样的问题!你现在的核心问题是Jenkins不知道自己运行在/jenkins这个子路径下,导致静态资源的URL生成错误,再加上Nginx的配置没补全必要的参数,所以才会出现部分页面能打开但图片、样式加载失败的情况。我给你一套完整的解决方案:

第一步:先修正Jenkins的上下文路径配置

Jenkins默认会把自己的资源路径设为根路径(比如/css/style.css),但我们希望它生成的路径都带上/jenkins前缀,所以需要修改Jenkins的启动参数:

  • Debian/Ubuntu系统:编辑/etc/default/jenkins文件,找到JENKINS_ARGS这一行,添加--prefix=/jenkins,修改后应该是这样:
    JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=8080 --prefix=/jenkins"
    
  • Windows系统:找到Jenkins安装目录下的jenkins.xml,在<arguments>标签里加入--prefix=/jenkins。

修改完成后重启Jenkins服务:

# Linux系统
sudo systemctl restart jenkins

# Windows系统
在服务管理器里找到Jenkins,右键重启

第二步:配置完整的Nginx反向代理规则

把你当前的location /jenkins/配置替换成下面的完整版本,每个参数都帮你补全了:

server {
    listen 80;
    server_name 你的主机名或IP; # 比如localhost或者你的服务器域名

    location /jenkins/ {
        # 转发请求到Jenkins的监听地址
        proxy_pass http://localhost:8080/jenkins/;
        
        # 传递真实的请求信息给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;
        
        # 支持Jenkins控制台的WebSocket实时输出
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # 延长超时时间,避免长任务中途断开
        proxy_connect_timeout 300s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}

第三步:重启Nginx并测试

保存配置后重启Nginx:

sudo systemctl restart nginx

现在访问http://host/jenkins,应该能正常加载所有静态资源,控制台输出、插件管理这些功能也能正常使用了。

常见坑提醒

  • 如果Jenkins和Nginx不在同一台机器,把proxy_pass里的localhost换成Jenkins服务器的IP地址。
  • 检查防火墙是否允许Nginx访问8080端口,避免连接被拦截。
  • 如果还是有问题,可以查看Nginx的错误日志/var/log/nginx/error.log,里面会有具体的报错信息帮你排查。

内容的提问来源于stack exchange,提问作者ThoWe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:38:18