需求是这样的,有一个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 &quot;%r&quot; %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 &quot;%r&quot; %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 &quot;%r&quot; %s %b" />
 
      </Host>

这样就达到了需求了。
contex指上下文,实际上就是一个web项目;
path是虚拟目录,访问的时候用127.0.0.1:8080/welcom/*.jsp访问网页,welcome前面要加/;
docBase是网页实际存放位置的根目录,映射为path虚拟目录;
reloadable="true"表示你修改了jsp文件后不需要重启就可以实现显示的同步。

这个方式的话,当启动第一个80端口的tomcat的时候,其他项目会全部启动。分别启动其他端口的tomcat也没影响,只是会更新项目而已。
这样做的好处就是,如果某个项目修改了要上传了,启动下对应端口下的tomcat,在关闭,那么就更新了,不用像以前那样启动一个tomcat有很多项目要重启。
但是我觉得实际中,应该不这样应用~ 

最新文章

  1. js测试题
  2. getopt()和getopt_long()用法
  3. mysql的卸载方法
  4. 简易版CMS后台管理系统开发流程
  5. VS2012报表(RDLC)系列应用之单据批量打印
  6. redis的图形界面管理工具:phpredisadmin
  7. HTML 速成
  8. c++连接数据库 在vc6.0
  9. Python 3.7 将引入 dataclass 装饰器
  10. C#利用NPOI操作Excel文件
  11. python nympy 序列化dict
  12. VMware vSphere 组件和功能
  13. Java 学习笔记 正则表达式
  14. 用Python实现数据结构之映射
  15. Amazon.com 美国亚马逊 直邮中国 手把手教程(转)
  16. java代码执行字符串中的逻辑运算方法
  17. WCF类型共享技巧【转载】
  18. 【xsy2272】 与运算 状压dp
  19. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(三)安装spark2.2.1
  20. ACE中对于不同类型数据的最大值最小值管理ACE_Numeric_Limits

热门文章

  1. python的模块与包的导入
  2. proc文件系统探索 之 根目录下的文件[三]
  3. Android存储之SQLite数据库
  4. 开源框架Volley的使用《一》
  5. java基础知识——网络编程、IO流
  6. CCSpriteBatchNode中存放元素的一点理解
  7. 全文检索 Lucene(3)
  8. Hibernate缓存集成IMDG
  9. 一个都不能少: DevOps的3大核心基础架构
  10. Swift中集合类型indexOf(Element)提示错误的解决办法