我想通过一个普通的网站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。