通过一个tomcat端口访问多个tomcat项目 tomcat转发
2024-08-26 15:23:52
需求是这样的,有一个tomcat,是80端口,现在我要通过这个tomcat转发到服务器其他tomcat,其他tomcat的端口不是80.这样做就可以避免这样www.baidu.com:8081的情况。
比如我现在的域名是www.baidu.com. 我映射好域名和ip,建好了对应的子域名one.baidu.com two.baidu.com
我现在有三个tomcat启动这,端口分别是:80 81 82
因为默认端口是80所以我可以直接www.baidu.com 访问到我的80tomcat的项目。但是我想one.baidu.com 访问到81的tomcat, two.baidu.com 访问到82的tomcat。
首先要配80 的域名映射。
在80的tomcat的server.xml 的 Engine节点下配置
1
2
3
4
5
6
7
8
9
10
|
< Host name = "www.baidu.com" appBase = "webapps" unpackWARs = "true" autoDeploy = "true" > < Context path = "" docBase = "baidu" reloadable = "true" /> < Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs" prefix = "localhost_access_log" suffix = ".txt" pattern = "%h %l %u %t "%r" %s %b" /> </ Host > |
这样我输入www.baidu.com就可以访问到80tomcat下的baidu的项目了。
下面的配置可以让我直接输入one.baidu.com two.baidu.com 直接访问到对应端口下的项目
1
2
3
4
5
6
7
8
9
10
|
< Host name = "one.baidu.com" appBase = "webapps" unpackWARs = "true" autoDeploy = "true" > < Context path = "/" docBase = "/test/one/apache-tomcat-8.0.14/webapps/oneBaidu" reloadable = "true" /> < Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs" prefix = "localhost_access_log" suffix = ".txt" pattern = "%h %l %u %t "%r" %s %b" /> </ Host >
< Host name = "two.baidu.com" appBase = "webapps" unpackWARs = "true" autoDeploy = "true" > < Context path = "/" docBase = "/test/two/apache-tomcat-8.0.14/webapps/twoBaidu" reloadable = "true" /> < Valve className = "org.apache.catalina.valves.AccessLogValve" directory = "logs" prefix = "localhost_access_log" suffix = ".txt" pattern = "%h %l %u %t "%r" %s %b" /> </ Host >
|
这样就达到了需求了。
contex指上下文,实际上就是一个web项目;
path是虚拟目录,访问的时候用127.0.0.1:8080/welcom/*.jsp访问网页,welcome前面要加/;
docBase是网页实际存放位置的根目录,映射为path虚拟目录;
reloadable="true"表示你修改了jsp文件后不需要重启就可以实现显示的同步。
这个方式的话,当启动第一个80端口的tomcat的时候,其他项目会全部启动。分别启动其他端口的tomcat也没影响,只是会更新项目而已。
这样做的好处就是,如果某个项目修改了要上传了,启动下对应端口下的tomcat,在关闭,那么就更新了,不用像以前那样启动一个tomcat有很多项目要重启。
但是我觉得实际中,应该不这样应用~
最新文章
- js测试题
- getopt()和getopt_long()用法
- mysql的卸载方法
- 简易版CMS后台管理系统开发流程
- VS2012报表(RDLC)系列应用之单据批量打印
- redis的图形界面管理工具:phpredisadmin
- HTML 速成
- c++连接数据库 在vc6.0
- Python 3.7 将引入 dataclass 装饰器
- C#利用NPOI操作Excel文件
- python nympy 序列化dict
- VMware vSphere 组件和功能
- Java 学习笔记 正则表达式
- 用Python实现数据结构之映射
- Amazon.com 美国亚马逊 直邮中国 手把手教程(转)
- java代码执行字符串中的逻辑运算方法
- WCF类型共享技巧【转载】
- 【xsy2272】 与运算 状压dp
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1
- ACE中对于不同类型数据的最大值最小值管理ACE_Numeric_Limits