用于Apache 2.4的tomcat 5.5的virtualHostconfiguration

我目前已经在负载均衡configuration中将Apache 2.4与两个tomcat服务器集成在一起。

networking服务器将接收来自DNS请求的两个域名http://domain1.nl和http://domain2.nl

我希望发送http(s)://domain1.nl/的请求到http(s)://domain1.nl/myapp1/login/login.do和http(s)://domain2.nl/到http (一个或多个)://domain2.nl/myapp2/

myapp1和myapp2都在两个负载平衡的Tomcat实例上运行。

在Apache上启用mod_rewrite和“mod_proxy_http”。

 <VirtualHost *:80> ServerName domain1.nl Rewriteengine on RewriteRule ^/$ http://domain1.nl/myapp1/login/login.do ProxyPass /myapp1 http://localhost:8080/myapp1 ProxyPassReverse /myapp1 http://localhost:8080/myapp1 </VirtualHost> <VirtualHost *:80> ServerName domain2.nl Rewriteengine on RewriteRule ^/$ http://domain2.nl/myapp2/ ProxyPass /myapp2 http://localhost:8080/myapp2 ProxyPassReverse /myapp1 http://localhost:8080/myapp2 </VirtualHost> 

有复制/粘贴的答案。 但是,这可能会导致更多的问题,因为你不能通过逐字复制/粘贴来获得基本的理解。

阅读所有的Apache虚拟主机和Apache重写模块文档,让你真正了解它是如何工作的,所以你可以这样想。

要让这些URL通过Apache到您的后端Tomcat服务器,请按照Apache Proxy文档应用代理指令。 显然,在上面的configuration中, localhost应该replace为Tomcat服务器所在的主机。

在Apache上启用mod_rewrite和“mod_proxy_http”。

根据Apache版本,这些mods可能不存在(由于'mod_'),请尝试:

a2enmod重写
a2enmod proxy_http
服务apache2重新启动

而在你的虚拟主机,这是我用来redirect到tomcat和排除从pipe理PHP的pipe理:

  ProxyPreserveHost on ProxyRequests off ProxyPass /phpmyadmin ! ProxyPass / http://localhost:8080/ ProxyPassReverse / http://localhost:8080/