3

我在我的服务器上的 tomcat 中运行了 jenkins:

http://davez0r.com:8080/jenkins

我希望 apache 将一个子域指向这个:

http://ci.davez0r.com

有这样做的方向:

所以我用我的提供商设置了子域,然后在 httpd.conf 中添加了一个虚拟主机:

<VirtualHost *:80>
    ServerName        ci.davez0r.com
    ProxyPass         /  http://localhost:8080/jenkins
    ProxyPassReverse  /  http://localhost:8080/jenkins
    ProxyRequests     Off

    <Proxy http://localhost:8080/jenkins*>
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>

这是我用来重写我的 mediawiki URL 的其他虚拟主机条目的下方。

然后我重新启动了一切。

问题是,现在当我转到所需的 URL 时,我被重定向到:

http://ci.davez0r.com/jenkins

在这一点上,我看到了一个空白页。

我什至不知道是谁在进行重定向。是詹金斯、阿帕奇、Tomcat……吗?

版本:

  • RHEL 6.2
  • 阿帕奇 2.2.15
  • 土狼 1.1
4

2 回答 2

2

这对我有用:

<VirtualHost *:80>
    ServerName        ci.davez0r.com
    ProxyPass         /  http://localhost:8080/jenkins/
    ProxyPassReverse  /  http://localhost:8080/jenkins/
    ProxyRequests     Off
    ProxyPreserveHost On
    <Proxy http://localhost:8080/jenkins/*>
        Order deny,allow
        Allow from all
    </Proxy>
    RewriteEngine on
    RewriteRule   ^/jenkins/(.+) http://%{HTTP_HOST}/$1
</VirtualHost>

在代理 URL 后添加斜杠会导致无限循环。然后在 ProxyPass URL 后添加斜杠使其工作,但所有静态内容都有错误的 URL。

所以我添加了一个重写规则来删除显示的额外/jenkins/目录,谁知道为什么。

于 2013-10-10T22:06:56.520 回答
0

Tomcat 正在生成重定向到什么 - 就它而言 - 是正确的 URL。

有几个选项。到目前为止,最简单的是将 Jenkins 部署为 Tomcat 上的 ROOT Web 应用程序。

更棘手的选项是弄清楚重定向是如何传回的,并在 httpd 中添加适当的配置来更改它。要解决您可能会看到的所有问题,您可能需要 mod_headers 和 mod_substitute 的某种组合。

于 2013-10-10T21:53:46.333 回答