我已经在服务器上安装了多个不同实例的不同端口上运行的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(即一个端口)使用防火墙规则,并redirectHTTP 80端口的请求到tomcat正在侦听的端口..
但是我想要这样的模式出现在所有的网站上
我怎样才能解决这个问题?
眼镜
主机M / C:64位
操作系统:Linux Redhat
Tomcat:6.0
安装一个真正的networking服务器,如Apache或nginx,并使用它的内置代理function(Apache上的mod_proxy和nginx上的HttpProxy核心模块)来代理在高端口上运行的相应Tomcat应用程序的path。
安装Apache并使用mod_rewrite代理到后端tomcat应用程序的请求。
下面是一个应该这样做的apacheconfiguration示例片段:
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/