我已经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 上,以及HttpProxy
nginx 上的核心模块)将路径代理到在高端口上运行的适当的 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/