• Tomcat 初探(三)多项目部署


    起因

      昨天房东找我说最近物价飞涨,要涨我房租,混不下去了,得要求老板涨工资。一大清早就去找老板,老板看了看我,让我发布先两个网站:一个前台网站 frontend,给用户用;一个后台管理网站 backend,给管理员用,两个网站要在同一台服务器上部署两个网站,但服务器上只有一个 tomcat,怎么办?

    相同端口的多项目部署

      还好我昨天了解了 server.xml 中各个节点的作用,正好派上用场,可以通过设置不同的 path 让其匹配到相应的 context,嗯,就这么搞,开个8001端口,修改 context 的 path,于是出现了下面的配置:

    <Context path="/user" docBase="/frontend" />
    <Context path="/manager" docBase="/backend" />

    通过地址:http://localhost:8001/user 和 http://localhost:8001/manager 进入到对应的项目中去(同端口同域名)就可以正常访问了。屁颠屁颠的去找老板要工资,老板一看,重做,为啥,前台域名要 www.frontend.com,后台域名要 www.backend.com 才行,这也难不倒我,调整一下 Host 节点的配置就可以:

        <Host name="www.backend.com"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">    
            <Context path="" docBase="/backend" />
          </Host>
          <Host name="www.frontend.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="/frontend" />
          </Host>

    然后分别通过地址:http://www.frontend.com:8001 和 http://www.backend.com:8001(同端口不同域名)来访问用户站点和管理员站点。 又屁颠屁颠的去找老板要求涨工资去了,老板不在,助理妹子说老板开会去了,不知道啥时候回来,妹子好像还没有男朋友,好可爱,刚刚对我笑了,是不是对我有意思,今晚一定要约她吃饭,嘿嘿。

    不同端口的多项目部署

      老板终于回来了,还要改(¥#@%……),理由是一个端口不够壕,要两个:一个8001给前台用,一个8002给后台用。为了工资,忍了,配置再改改。回顾之前看的 server.xml 中的内容,端口号是由 Connector 节点负责的,是不是搞两个 Connector 就可以,说干就干,修改配置如下(监听多端口):

       <Connector port="8001" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
       <Connector port="8002" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />    

    然后分别通过地址:http://www.frontend.com:8001 和 http://www.backend.com:8002 来访问用户站点和管理员站点,可行,但 http://www.frontend.com:8002 和 http://www.backend.com:8001 居然也是正常的,还好我自测了一下,不然肯定被老板找理由拖欠工资,再次调整:

      <!--www.frontend.com 的配置-->
      <Service name="Catalina">
        <Connector port="8001" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8013" />
        <Connector port="8109" protocol="AJP/1.3" redirectPort="8013" />
        <Engine name="Catalina" defaultHost="localhost">
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
          </Host>
          <Host name="www.frontend.com"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">    
            <Context path="" docBase="/frontend" />
          </Host>
        </Engine>
      </Service>
      <!--www.backend.com 的配置-->
      <Service name="Catalina">
        <Connector port="8002" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8014" />
        <Connector port="8110" protocol="AJP/1.3" redirectPort="8014" />
        <Engine name="Catalina" defaultHost="localhost">
          <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
          </Host>        
          <Host name="www.backend.com"  appBase="webapps"
                unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="/backend" />
          </Host>
        </Engine>
      </Service>

    通过地址:http://www.frontend.com:8001 和 http://www.backend.com:8002 来访问用户站点和管理员站点,可行,但 http://www.frontend.com:8002 和 http://www.backend.com:8001 不能正常访问,搞定,赶紧去找老板,顺便约助理妹子晚上一起吃麻辣烫(升职加薪,赢取白富美,走向人生巅峰,嘿嘿),忐忑的敲开了老板的门。老板看见我道:“正好要找你,为了方便管理,还是弄两台服务器吧,你今天弄完,涨工资的事儿,明天再说”。看了看表,还有几分钟就下班了,助理妹子瞥了我一眼(眼神很怜悯有木有),我张了张嘴,吃饭的事儿一直没说出口,算了,改天再约吧,今晚要加班了,不甘心(我就是一码农啊)……

  • 相关阅读:
    dropdownlist下拉框加--请选择---
    vs2012中自带IIS如何让其他电脑访问
    win7 web开发遇到的问题-由于权限不足而无法读取配置文件,无法访问请求的页面
    无法打开登录所请求的数据库 "xxxx"。登录失败。 用户 'NT AUTHORITYSYSTEM' 登录失败。
    如何实现删除确认
    如何获取GridView的总记录数?
    SQL两张表如何关联
    ES7学习笔记——Array.prototype.includes和求幂运算符**
    一些常用的JavaScript正则表达式
    Vue.js 2.x中事件总线(EvevntBus)及element-ui中全屏loading的使用
  • 原文地址:https://www.cnblogs.com/krockey/p/5073132.html
Copyright © 2020-2023  润新知