使用 mod_rewrite 隐藏 tomcat 端口

使用 mod_rewrite 隐藏 tomcat 端口

我在 Tomcat 上有一些应用程序使用如下 URL:http://xxx:8080/myapp

我不想让用户在 URL 中看到端口。

您可以执行如下重写规则:

RewriteRule ^/myapp(.*) http://xxx:8080/myapp$1 [P,L]

这样,如果用户访问该 URL,http://xxx/myapp他可以正常进入应用程序,但端口仍会显示在浏览器中。我希望用户看到的 URL 始终是http://xxx/myapp

如何使用 mod_rewrite 来实现这一点?

答案1

您可以在 Apache 中使用反向代理。

创建一个监听 80 端口的 VirtualHost 并设置代理:

ProxyPreserveHost Off
ProxyPass / http://xxx:8091/app/
ProxyPassReverse / http://xxx:8091/app/

答案2

如果您没有任何其他像 apache 一样监听端口 80 的 Web 服务器,那么一个简单的解决方案就是将 tomcat 的监听端口更改为 80。

如果您的 apache 在端口 80 上监听,您仍然可以使用 mod_jk 在端口 80 上访问您的应用程序。

答案3

最好的方法是通过撤销代理人。

您可以在 tomcat 前面设置另一个 Web 服务器,作为反向代理,并自动完成前端端口 80 和后端端口 8080 之间的转换。

Apache 可以使用以下方式配置mod_proxy甚至mod_jk和/或mod_proxy_ajp。否则,您可以使用独立代理,例如

相关内容