apache子域代理到tomcat插入额外目录的jenkins

时间:2013-10-10 20:46:51

标签: apache tomcat jenkins

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

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网址的其他虚拟主机条目。

然后我重新启动了所有内容。

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

http://ci.davez0r.com/jenkins

此时我看到一个空白页面。

我不知道谁在做重定向。是Jenkins,Apache,Tomcat ......?

版本:

  • RHEL 6.2
  • Apache 2.2.15
  • Coyote 1.1

2 个答案:

答案 0 :(得分: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/目录。

答案 1 :(得分:0)

Tomcat正在生成重定向 - 就其而言 - 是正确的URL。

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

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