Newyorkcity
V2EX  ›  问与答

哎..tomcat7 的两个问题

  •  
  •   Newyorkcity · Apr 28, 2019 · 1683 views
    This topic created in 2572 days ago, the information mentioned may be changed or developed.
    有两个项目 webapp1.war,webapp2.war
    要求 webapp1 只能直接通过 ip:port 访问到
    webapp2 只能通过 ip:port/webapp2/的方式访问到
    (后面的 index.jsp 省略了)
    该如何配置做到?
    网站没有开发完成,webapp1 和 webapp2 两个 war 包可能会更新,如何不关闭 tomcat 和服务器,做到一个 war 包被替换了,tomcat 能随时监察到并同步更新覆盖?

    谢谢!
    7 replies    2019-04-28 16:53:11 +08:00
    BCy66drFCvk1Ou87
        1
    BCy66drFCvk1Ou87  
       Apr 28, 2019 via Android
    tomcat 配置 2 个虚拟主机分别对应 webapp1 和 webapp2(ip:port 中的端口是不是同一个?)

    传统的 war 包部署应该做不到同步更新覆盖。如果配置了.war 文件在 tomcat 运行就自解压,war 包的文件名是个问题——新上传的 war 包如果跟旧的 war 包同名解压后应该会冲突(没试过…),不同名则需重新修改 server.xml 中虚拟主机 appBase 对应的路径
    funky
        2
    funky  
       Apr 28, 2019
    war 应该实现不了热更新吧
    Newyorkcity
        3
    Newyorkcity  
    OP
       Apr 28, 2019
    @HuasLeung 是同一个..我是在 conf/server.xml 文件里这么写的
    <Context docBase="webapp1.war" path="" reloadable="true" debug="0"/>
    <Context docBase="webapp2.war" path="/webapp2" reloadable="true" debug="0"/>
    webapp1 会自动生成 webapp1 文件夹,但不能通过 ip:port 的方式访问,只能通过 ip:port/webapp1 的方式访问..我也很气..
    Newyorkcity
        4
    Newyorkcity  
    OP
       Apr 28, 2019
    @HuasLeung
    @funky
    实现不了热更新的话 tomcat 有什么办法达成这个效果么?我觉得这个要求对于还在开发的网站不应该是很寻常的么..
    funky
        5
    funky  
       Apr 28, 2019   ❤️ 1
    在前面有一个 nginx 后面两个 tomcat 实例,滚动重启
    funky
        6
    funky  
       Apr 28, 2019
    webapp1 换成 ROOT 可以 ip:port 直接访问
    NobodyIsMe
        7
    NobodyIsMe  
       Apr 28, 2019   ❤️ 1
    @Newyorkcity

    <Host name="xx.cn" appBase="webapps1"
    unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/home/ubuntu/projects/webapps1.war" reloadable="true"/>
    </Host>
    <Host name="xx.cn" appBase="webapps2"
    unpackWARs="true" autoDeploy="true">
    <Context path="/hello" docBase="/home/ubuntu/projects/webapps2.war" reloadable="true"/>
    </Host>

    如果想要每次 war 更新都自动热部署, 那么需要写脚本了:

    上传 war 包,并且将 webapps1 webapps2 文件夹下自动解压出的项目移除 ,tomcat 会自动去解压热更新的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1132 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 18:09 · PVG 02:09 · LAX 11:09 · JFK 14:09
    ♥ Do have faith in what you're doing.