Apache2 - > Tomcat虚拟主机

时间:2011-12-15 05:26:19

标签: apache tomcat proxy virtualhost

我正在尝试在我的服务器上设置问题跟踪器,运行apache2。但是,问题跟踪器(youtrack)在tomcat中运行,因此我尝试设置将重定向到tomcat服务器的虚拟主机。这就是我所拥有的:

#Tomcat                                                                                                                                                                                                                                                                                        
<VirtualHost *:80>
    ServerName issues.example.ca
    ServerAlias issues.example.*

    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://www.example.com:8080/youtrack/
    ProxyPassReverse / http://www.example.com:8080/youtrack/
    ProxyPreserveHost On
    ProxyStatus On
    <Location />
        Order allow,deny
        Allow from all
    </Location>

    ErrorLog logs/issues.example.ca-error_log
    CustomLog logs/issues.example.ca-access_log common

</VirtualHost>

现在,我可以看到youtrack登录页面,但是没有应用他们的CSS,我无法登录。我在源代码中查了一下,结果发现它在/youtrack中寻找所有资源这显然不存在,因为这意味着它将在http://example.com:8080/youtrack/youtrack中查找。我将如何摆脱这第二条道路?我尝试过重写,但我似乎无法将其改正。任何帮助,将不胜感激。谢谢!

编辑:我想做这样的重写:

RewriteRule ^.*/youtrack/(.*)$ /$1 [P,L]

该网站有效,但现在问题是该网址为issues.example.com/youtrack/stuff,我希望它为issues.example.com/stuff。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您需要将YouTrack从/ youtrack运行的服务器上的URI更改为/。 这是实现您所需要的唯一途径。

然后,替换 &#34; ProxyPass / http://www.example.com:8080/youtrack/&#34; 同 &#34; ProxyPass / http://www.example.com:8080/&#34; 等...

答案 1 :(得分:0)

过去,我们使用modjk来桥接Apache和Tomcat。

多年来我没有在这个配置上工作,所以也许有一些更新的方法。