【发布时间】:2021-03-30 09:48:01
【问题描述】:
我们在 8080 端口上有 SSL 证书,我们将公共端口 8080 绑定到本地端口 8080。但是,当登录 Jenkins 时,它重定向到端口 8443,得到“无法访问此页面”。
如何停止此重定向?
更新:
- 我检查了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
- 虽然登录重定向到 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