Apache服务器后面的Jenkins /无法登录Jenkins

时间:2015-01-23 11:49:37

标签: apache login jenkins

我正在运行Apache Server 2.2来处理Jenkins和SonaType Nexus信息(两者都安装为Windows服务)。虽然SonatypeNexus完美运行但Jenkins却没有。更具体一点:我不能登录詹金斯。仅供您注意:我们使用LDAP登录,但这不能成为登​​录失败的原因,因为从本地主机登录可以正常工作。

如果我尝试从localhost:8071登录Jenkins,它的效果非常好。

当我通过网络从另一个系统登录时(使用https://myServer.com:8095/)我可以浏览和配置Jenkins,但我无法登录。每当我尝试时,我都会“重定向”到Jenkins页面,然后点击“登录”按钮。 安全设置设置为“每个人都可以做任何事情” - >也不是原因。

提示0:您可能已经注意到我们正在使用https来处理来自外部专用于服务器的任何请求。但是在服务器内,Apache只使用http来处理信息 - >这会导致问题吗?

提示1:我只能使用正确的登录参数“重定向”。使用错误的导致我“登录信息无效。请再试一次。”页。

提示2: Sonatype Nexus在同一台Apache服务器后运行并且运行良好。

潜在原因:猜测我可以通过localhost登录的原因,但不是通过网络必须是我们的Apache 2.2服务器,它处理信息错误。通过使用localhost我可以绕过Apache( - >工作),但通过网络使用Apache( - >不起作用)。

任何想法如何解决这个或至少是什么原因?

以下是apache服务器(httpd-ssl.conf)中可能有用的一些设置:

<VirtualHost *:8095>
  ServerName myServer.com
  ServerAdmin admin@myServer.com  

  # Nexus via HTTPS.
  ProxyPass /nexus http://localhost:8072/nexus
  ProxyPassReverse /nexus http://localhost:8072/nexus
  ProxyPassReverseCookiePath / /nexus
  RequestHeader set X-Forwarded-Proto "https"
  ErrorLog logs/nexus_error_ssl.log
  CustomLog logs/nexus_access_ssl.log common

  # Jenkins via HTTPS.
  ProxyPass / http://localhost:8071/ nocanon
  ProxyPassReverse / http://localhost:8071/
  ProxyPassReverse / http://my.host.com/
  # also tested second ProxyPassReverse with specific port
  ProxyPassReverseCookiePath / /
  ProxyPreserveHost On
  RequestHeader set X-Forwarded-Proto "https"


  ProxyRequests     Off
  AllowEncodedSlashes NoDecode  

  SSLEngine on

2 个答案:

答案 0 :(得分:1)

我不确定我的解决方案是否正确,因为我的同事找到了答案,而不是我。

由于Apache正确处理https(来自jenkins)(请求到达LDAP),但无法正确传递http信息(从LDAP进入)(登录无法)。

因此他查看了http设置并配置了启用http的设置。这导致了我们的目标 - &gt;我们现在可以登录,它也会导致另一个问题 - &gt; http已启用并可供用户使用...

答案 1 :(得分:0)

this页面上,它暗示您可能需要添加另一个ProxyPassReverse来修复Jenkins生成的http链接:

ProxyPassReverse  /  http://your.host.com:8095/

另外,它提到你应该添加

ProxyPreserveHost On

到你的配置。请查看链接以获取更多信息。