Tomcat从Tomcat Web应用程序管理器重新启动虚拟主机

时间:2019-01-09 12:24:44

标签: tomcat virtualhost

我在tomcat上运行了3个虚拟主机

abc.domain.com def.domain.com ghi.domain.com

更新一个应用程序时,必须重新启动tomcat服务(我运行./shutdown.sh./startup.sh脚本)。

当我使用Tomcat Web应用程序管理器时,想要重新声明它。当我在浏览器中调用应用程序时,我停止了其中一个应用程序,它仍然可以正常工作。

在localhost上,我使用了这些方法(认为是Tomcat Web应用程序管理器)来重新启动应用程序,并且该程序可以运行(没有虚拟主机)。

localhost:8080/abc localhost:8080/def localhost:8080/ghi

有人知道,如何在不重新启动tomcat服务的情况下重新启动应用程序? 我的目的是我不想打扰其他应用程序。

谢谢

server.xml文件中

<Host name="abc.domain.com"  appBase="webapps" unpackWARs="true" autoDeploy="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" />
        <Context path="" docBase="/tomcat/webapps/abc"
               debug="0" reloadable="true"/>
      </Host>

<Host name="def.domain.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="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" />
        <Context path="" docBase="/tomcat/webapps/def"
               debug="0" reloadable="true"/>
</Host>

<Host name="ghi.domain.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="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" />
        <Context path="" docBase="/tomcat/webapps/ghi"
               debug="0" reloadable="true"/>
      </Host>`

1 个答案:

答案 0 :(得分:0)

因此,我以某种方式在tomcat文档中找到了解决方案。

https://tomcat.apache.org/tomcat-9.0-doc/virtual-hosting-howto.html#server.xml

请注意,每个主机在appBase下的目录结构不应相互重叠。

因此,我需要从

编辑server.xml
<Host name="abc.domain.com"  appBase="webapps" unpackWARs="true" autoDeploy="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" />
        <Context path="" docBase="/tomcat/webapps/abc"
               debug="0" reloadable="true"/>
      </Host>

<Host name="abc.domain.com"  appBase="abc" unpackWARs="true" autoDeploy="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" />
        <Context path="" docBase="xyz"
               debug="0" reloadable="true"/>
      </Host>

<Host name="def.domain.com"  appBase="def"
            unpackWARs="true" autoDeploy="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" />
        <Context path="" docBase="klm"
               debug="0" reloadable="true"/>
</Host>

然后转到Tomcat Virtual Host Manager来停止启动虚拟主机

我希望它能提供帮助。