在同一台服务器Tomcat上配置多个IP地址,对应多个应用
例如webapps下有两个应用:app1,app2
在server.xml配置两个<host>,地址分别为192.168.1.1和192.168.1.2,
实现的效果是:能通过http://192.168.1.1和http://192.168.1.2分别访问app1和app2,
可是也能通过http://192.168.1.1/app2/来访问app2,这不是我想要的效果
请问怎么使两个应用通过ip地址完全分开

解决方案 »

  1.   

    类似这样配的? <Host name="192.168.100.205"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="C:\Tomcat6\webapps\jidu" debug="0" />            
              </Host>
       
      <Host name="192.168.100.204"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
                <Context path="" docBase="C:\Tomcat6\webapps\lasa" debug="0" />            
             </Host>
      

  2.   

    我补充一点,首先要保证你的服务器有2个网卡,地址分别为192.168.1.1和192.168.1.2,然后再按照1楼的方法即可。
    一块网卡也可配2个网站,但必须要用域名的方式来配置(两个域名解析到同一个IP),配置方法同1楼,只不过要把ip地址换成对应的域名即可。
      

  3.   

    一张网卡也可以配两个地址的
    我是按一楼配的,可是我不希望通过第一个IP地址也能访问第二个应用,比如:http://192.168.100.205/lasa
      

  4.   

    如果是IP地址,一张网卡怎么可能配两个地址呢?一张网卡能设2个IP吗?(域名除外)
      

  5.   

    根本就不是你这样的弄的!一般使用基于域名的虚拟主机,也就是不同的域名对应的 IP 地址都相同,这种配置你最好借助于 Nginx、Apache 之类的 Web 服务器,在 Web 服务器上配置多个域名,不同的域名转向后台不同的 tomcat 实例上去。比如:A 应用发布在 10.33.133.10 的 8080 端口号,B 应用发布在另外一个 tomcat 也是相同 IP 地址的 8081 端口上。那前端 Web 服务器 server_name 为 a.test.com 的映射到后端的 A 应用上去,b.test.com 映射到后端的 B 应用上去。为什么同一个 IP 可以配置多个域名?这是因为 HTTP 请求中有个 Host 的头,就是根据这个来判断的。
      

  6.   

    通过apache反向代理来实现这样的效果就OK了哦!