Apache2 -> Tomcat 虚拟主机
Posted
技术标签:
【中文标题】Apache2 -> Tomcat 虚拟主机【英文标题】:Apache2 -> Tomcat Virtual Host 【发布时间】:2012-01-20 21:06:00 【问题描述】:我正在尝试在我的服务器上设置问题跟踪器,运行 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
中查找。我将如何摆脱第二条 youtrack 路径?我已经尝试过重写,但我似乎无法完全正确。任何帮助,将不胜感激。谢谢!
编辑:我想像这样重写:
RewriteRule ^.*/youtrack/(.*)$ /$1 [P,L]
该站点可以正常工作,但现在的问题是 URL 显示为 issues.example.com/youtrack/stuff
,而我希望它是 issues.example.com/stuff
。有什么想法吗?
【问题讨论】:
【参考方案1】:您需要将运行 YouTrack 的服务器上的 URI 从 /youtrack 更改为 /。 这是实现您需要的唯一方法。
然后,替换 “代理通行证/http://www.example.com:8080/youtrack/” 和 “代理通行证/http://www.example.com:8080/” 等等……
【讨论】:
【参考方案2】:过去,我们使用 modjk 来桥接 Apache 和 Tomcat。
我多年来没有研究过这个配置,所以也许有一些更新的方法。
【讨论】:
以上是关于Apache2 -> Tomcat 虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章
centos 配置apache和tomcat共同使用https