![Jenkins 反向代理登录/退出页面失败](https://linux22.com/image/699756/Jenkins%20%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E7%99%BB%E5%BD%95%2F%E9%80%80%E5%87%BA%E9%A1%B5%E9%9D%A2%E5%A4%B1%E8%B4%A5.png)
我有一对服务器,一个运行 Nginx,另一个运行 Jenkins(当然,还有其他服务器用于其他服务,但这不是重点)。这些服务器位于自己的子网中,通常无法从我的机器访问。出于测试目的,这两台机器都有一个我可以从我的机器访问的 IP。
如果我直接访问 Jenkins 服务器,一切都会按预期运行。这或多或少是一个标准的 Jenkins 安装,通过 centos 包完成。只有一点小小的修改是使用 nginx on 从 80 重定向到 8080,并且让 jenkins 监听/jenkins
而不是仅仅监听/
;这是通过更新 jenkins 的配置以包含来完成的--prefix=/jenkins
。
但是,这些服务器只能通过 nginx 服务器访问,因为在某些时候这将是 https 端点,但目前,它只是 http。我已经在 nginx 服务器上设置了反向代理,它几乎完美地工作。现在唯一的问题是,当我登录或退出时,虽然它确实有效,但我被带到了错误的 IP,浏览器中什么都没有加载。即;
- 我
<nginx ip>:80/jenkins
- 我点击登录
- 它试图带我去
<jenkins ip on wrong subnet>:80/jenkins
- 我刷新并
<nginx ip>:80/jenkins
加载并登录 - 我将鼠标悬停在注销按钮上,链接显示
<nginx ip>:80/jenkins/logout
- 我点击退出
- 它试图带我去
<jenkins ip on wrong subnet>:80/jenkins/logout
- 我刷新页面并退出
我不明白为什么 Jenkins 专门使用此子网 IP 进行登录/退出。我相信 jenkins 正在使用它自己的 tomcat 实例,但我似乎无法在这台机器上找到它的任何安装。我通过反向代理设置的其他服务要么已连接,要么未连接。