nginx代理jenkins无法跳转问题

这篇博客介绍了如何在Docker中运行Jenkins,并设置Nginx代理,确保通过`/jkns`前缀访问。配置包括Docker命令行参数`--prefix=/jkns`以及Nginx的location块,特别注意了`proxy_set_header Host $host:$port;`的端口号设置,以正确处理重定向。

我的jenkins

docker run -d --name jenkins -p 7005:8080 -e JENKINS_OPTS="--prefix=/jkns" -v /data/jenkins:/var/jenkins_home -v /data/app:/app jenkins/jenkins

主要是需要加 --prefix=/jkns

nginx配置:

location /jkns {
        proxy_set_header Referer $http_referer;
        proxy_set_header Host $host:${port};
        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_pass   http://${ip}:7005/jkns;

    }

端口号需要自己写进去:proxy_set_header Host $host:${port}; 不然重定向获取不到端口 ;${port}和${ip}换成自己的

 

 

配置 Nginx 实现二级域名反向代理是一种常见的需求,尤其在需要将请求转发到本地不同端口或后端服务时。以下是一个完整的配置示例和说明。 ### 基本配置 假设要将 `jenkins.example.com` 作为二级域名,并将其反向代理到运行在本地 8080 端口的 Jenkins 服务上: ```nginx server { listen 80; server_name jenkins.example.com; location / { proxy_pass http://127.0.0.1:8080/; 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_pass` 指令用于指定目标地址和端口,而 `proxy_set_header` 则用于设置传递给后端服务器的请求头信息[^1]。 ### 配置 HTTPS 支持 如果希望为该二级域名启用 HTTPS,可以添加一个新的 `server` 块来处理 SSL 请求。确保已经准备好证书文件路径: ```nginx server { listen 443 ssl; server_name jenkins.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/privkey.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; location / { proxy_pass http://127.0.0.1:8080/; 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; } } ``` 此外,为了强制所有流量通过 HTTPS 访问,可以在 HTTP 的 `server` 块中添加重定向规则: ```nginx server { listen 80; server_name jenkins.example.com; return 301 https://$host$request_uri; } ``` ### 注意事项 - **Jenkins 登录问题**:当使用反向代理时,可能会遇到无法正常登录的问题,例如跳转至 `/j_acegi_security_check` 报 404 错误。一种解决方法是在 Jenkins 的全局安全设置中禁用安全性功能,但这仅适用于测试环境[^2]。 - **SSL 证书管理**:确保证书路径正确无误,并且权限设置得当,以防止因权限问题导致的服务启动失败。 - **性能优化**:根据实际需求调整 `ssl_ciphers` 和 `ssl_protocols` 以平衡安全性与兼容性。 完成以上步骤后,保存配置文件并重新加载 Nginx 服务以使更改生效: ```bash sudo nginx -t sudo systemctl reload nginx ``` 这些步骤应该能够帮助您成功配置 Nginx 来实现二级域名的反向代理设置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值