【问题标题】:How to stop Jenkins from redirect to port 8443?如何阻止 Jenkins 重定向到端口 8443?
【发布时间】:2021-03-30 09:48:01
【问题描述】:

我们在 8080 端口上有 SSL 证书,我们将公共端口 8080 绑定到本地端口 8080。但是,当登录 Jenkins 时,它重定向到端口 8443,得到“无法访问此页面”。

如何停止此重定向?

更新:

  1. 我检查了Chrome插件“链接重定向跟踪”,发现url有以下变化:
https://ourdomain.com:8080

https://ourdomain.com:8080/login?from=%2F

https://ourdomain.com:8080/j_spring_security_check

https://ourdomain.com:8443
  1. 虽然登录重定向到 8443(无法访问此页面)。当我打开 8080 端口时,账号已经登录了。

更新 2:

我很疑惑8443端口号是从哪里来的,于是搜了一下Jenkins的源码:

jenkins/core/src/test/java/jenkins/model/JenkinsGetRootUrlTest.java

在第 162 - 165 行的函数 useForwardedProtoWithIPv6WhenPresent

    accessing("http://[::1]:8080/jenkins/");
    withHeader("X-Forwarded-Proto", "https");
    withHeader("X-Forwarded-Host", "[::1]:8443");
    rootUrlFromRequestIs("https://[::1]:8443/jenkins/");

Jenkins 似乎认为我们使用的是 IPv6。我试图关闭 X-Forwarded-Proto 负载均衡器中的标头,现在登录将重定向到正确的端口 8080。但是,在 Jenkins 配置页面中,它提示 It appears that your reverse proxy set up is broken.

我不知道这是否重要。为什么 Jenkins 认为我们正在使用 IPv6?

【问题讨论】:

  • /configure 页面上,Jenkins Location 下的Jenkins URL 设置为什么?
  • @apr_1985 詹金斯网址:ourdomain.com:8080

标签: jenkins


【解决方案1】:

我怀疑这是因为 Jenkins 默认情况下在端口 8080 上运行 HTTP,在端口 8443 上运行 HTTPS。所以在登录时,Jenkins 将请求视为 HTTPS,因为它通过其配置的 HTTPS 端口传递。 您可能需要使用选项运行 Jenkins

--httpPort=-1 --httpsPort=8080

-1 将禁用 http,然后它应该将 8080 绑定到 HTTPS。

(请注意,我没有测试台可以尝试这个,但从文档来看应该没问题https://www.jenkins.io/doc/book/installing/initial-settings/

【讨论】:

  • 谢谢。我在/etc/sysconfig/jenkins 中设置了JENKINS_HTTPS_PORT="8080"。它仍然重定向到8443。奇怪的是:当我重新访问8080之后,帐户已经登录了。
  • 有什么解决办法吗?
猜你喜欢
  • 2017-03-31
  • 2020-06-28
  • 1970-01-01
  • 1970-01-01
  • 2014-09-04
  • 1970-01-01
  • 2018-08-23
  • 2015-05-10
  • 2018-05-23
相关资源
最近更新 更多