Mac配置Nginx反向代理Jenkins找不到jenkins.xml及参数添加问题
核心原因
官方文档中提到的jenkins.xml是Windows平台安装Jenkins时生成的服务启动配置文件,Mac环境下不存在该文件。--prefix=/jenkins是Jenkins的启动参数,不需要写入Jenkins运行目录下的config.xml(该文件为Jenkins业务功能配置文件,不识别启动参数),需要根据你Mac上Jenkins的实际安装方式,修改对应启动配置。
分场景配置步骤
Homebrew安装的Jenkins(Mac最常用安装方式)
- 先停止运行中的Jenkins服务:
- 若安装的是LTS长期支持版,执行
brew services stop jenkins-lts - 若安装的是每周更新版,执行
brew services stop jenkins
- 若安装的是LTS长期支持版,执行
- 找到对应启动配置plist文件:
- Intel芯片Mac路径:
/usr/local/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist - Apple Silicon芯片Mac路径:
/opt/homebrew/opt/jenkins-lts/homebrew.mxcl.jenkins-lts.plist
- Intel芯片Mac路径:
- 编辑该文件,找到
ProgramArguments对应的参数数组,在原有启动参数末尾新增一行<string>--prefix=/jenkins</string>,修改后的参数段示例:
<key>ProgramArguments</key> <array> <string>/usr/bin/java</string> <string>-Dmail.smtp.starttls.enable=true</string> <string>-jar</string> <string>/usr/local/opt/jenkins-lts/libexec/jenkins.war</string> <string>--httpListenAddress=127.0.0.1</string> <string>--httpPort=8080</string> <string>--prefix=/jenkins</string> </array>
- 保存文件后重启Jenkins服务:对应执行
brew services start jenkins-lts或brew services start jenkins
官方pkg安装包安装的Jenkins
该方式安装的Jenkins默认注册为系统级后台服务,配置步骤:
- 执行命令停止服务:
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist - 编辑启动配置文件
/Library/LaunchDaemons/org.jenkins-ci.plist,找到ProgramArguments参数数组,和上述Homebrew版本修改逻辑一致,在数组末尾新增<string>--prefix=/jenkins</string> - 保存文件后执行
sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist重启服务
生效验证与Nginx配置注意点
- 重启完成后先本地访问
http://127.0.0.1:8080/jenkins,能正常加载Jenkins首页即代表上下文路径配置生效 - Nginx反向代理核心配置参考如下,注意
proxy_pass末尾必须带/jenkins路径,否则会出现静态资源加载404、WebSocket连接失败问题:
location /jenkins { proxy_pass http://127.0.0.1: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; proxy_redirect http:// https://; client_max_body_size 100m; proxy_buffering off; proxy_request_buffering off; proxy_http_version 1.1; proxy_set_header Connection ""; }
踩坑提示:不要尝试修改Jenkins工作目录下的
config.xml添加启动参数,该文件仅存储Jenkins的系统配置、任务配置、插件配置等业务内容,写入启动参数不会生效,还可能导致配置文件解析失败。
内容的提问来源于stack exchange,提问作者Scozirge2
相关产品推荐
相关产品推荐

