我在 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。否则,您可以使用独立代理,例如磅。