隐藏 tomcat 应用程序 URL 中的端口

隐藏 tomcat 应用程序 URL 中的端口

我已经tomcat 6在服务器上设置了几个不同的实例,它们在不同端口上运行

例如:

     http://10.XXX.XXX.XXX:8080/myAPP1
     http://10.XXX.XXX.XXX:8088/myAPP2
     http://10.XXX.XXX.XXX:8082/myAPP3

等等...

这些 URL 可供使用这些应用程序和其他应用程序的用户使用 现在我想隐藏每个应用程序正在运行的端口......

这样用户就只能看到这样的内容

http://10.XXX.XXX.XXX/myAPP1
http://10.XXX.XXX.XXX/myAPP2
http://10.XXX.XXX.XXX/myAPP3

为此需要做什么

我已经使用防火墙规则为一个 url(即一个端口)实现了此目的,并将 80 端口上的请求重定向HTTP到正在监听的端口tomcat

但我希望所有的网址都出现这样的模式......

我该怎么办?

眼镜

主机 M/C:64 位

操作系统:Linux Redhat

Tomcat:6.0

答案1

安装一个真正的网络服务器,比如 Apache 或 nginx,并使用其内置的代理功能(mod_proxy在 Apache 上,以及HttpProxynginx 上的核心模块)将路径代理到在高端口上运行的适当的 Tomcat 应用程序。

答案2

安装 apache 并使用 mod_rewrite 将请求代理到后端 tomcat 应用程序。

下面是可以执行此操作的 apache 配置示例片段:

RewriteEngine on
#Optional - setup a log, useful for debugging
#RewriteLog logs/rewrite.log
#RewriteLogLevel 3

RewriteRule ^/myAPP1(.*) http://10.XXX.XXX.XXX:8080/myAPP1$1 [P,L]
RewriteRule ^/myAPP2(.*) http://10.XXX.XXX.XXX:8088/myAPP2$1 [P,L]
RewriteRule ^/myAPP3(.*) http://10.XXX.XXX.XXX:8082/myAPP3$1 [P,L]

以下是一些有关 mod_rewrite 的有用信息: http://httpd.apache.org/docs/current/mod/mod_rewrite.html

http://www.addedbytes.com/cheat-sheets/mod_rewrite-cheat-sheet/

相关内容