Jenkins 反向代理登录/退出页面失败

Jenkins 反向代理登录/退出页面失败

我有一对服务器,一个运行 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 实例,但我似乎无法在这台机器上找到它的任何安装。我通过反向代理设置的其他服务要么已连接,要么未连接。

相关内容