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

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

我想通过常规网站 URL(例如)运行 Tomcat 应用程序www.xyz.com。我希望此域的根目录充当 Web 应用程序的基目录,因此每个请求都www.xyz.com/a/b/c变为www.abc.com:8080/myApp/a/b/c。理想情况下,我可以透明地执行此操作,并且只针对某些 Web 应用程序执行此操作。

www.abc.com:8080仍应响应请求。

我需要做什么才能实现这一点?

答案1

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

阅读更多内容mod_proxy

答案2

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

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

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

答案3

您可以使用 Apache 中的 mod_rewrite 来执行此操作。在 Apache 中加载 mod_rewrite,并在 www.xyz.com vhost 中添加以下规则:

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。

相关内容