将Apache请求(端口80)转发到Tomcat(端口8080)?

我想通过一个普通的网站URL(如www.xyz.com运行一个Tomcat应用程序。 我希望这个域的根作为Web应用程序的基本目录,因此每个到www.xyz.com/a/b/c请求都会变成www.abc.com:8080/myApp/a/b/c 。 理想情况下,我可以做到这一点透明,只为某些webapps。

www.abc.com:8080应该仍然回应请求。

我需要做些什么才能做到这一点?

 ProxyPass / http://www.abc.com:8080/myApp/ ProxyPassReverse / http://www.abc.com:8080/myApp/ 

阅读更多关于mod_proxy的信息

一个简单的方法就是在你的Apache conf文件中添加一个虚拟主机条目。 通常位于/ etc / httpd / conf中,在虚拟主机部分的末尾添加如下内容:

 <VirtualHost XXXX:80> ServerName tomcatpage.yourdomain.com ServerAlias tomcatpage.yourdomain.com Redirect permanent / http://tomcatpage.yourdomain.com:8080/ </VirtualHost> 

重新启动你的Apache服务,你就完成了。

你可以在Apache中使用mod_rewrite来做到这一点。 在您的Apache和www.xyz.com虚拟主机中加载mod_rewrite添加以下规则:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1

这应该做的魔术。

更多关于mod_rewrite的信息

编辑 :为了保持浏览器中的网站名称,使用mod_proxy以及在RewriteRule的末尾追加一个[P]:

RewriteRule ^/(.*) http://www.abc.com:8080/myApp/$1 [P]

这将迫使Apache充当该URL的代理,而不是仅仅重写URL。