Tomcat перезапускает виртуальный хост из Tomcat Web Application Manager

У меня есть 3 виртуальных хоста, работающих на tomcat

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

Когда я обновляю одно приложение, мне приходится перезапускать службу tomcat (я запускаю скрипты ./shutdown.sh и ./startup.sh).

Когда я использую Tomcat Web Application Manager, он хочет быть переопределен. Событие, когда я останавливаю одно из приложений, оно все еще работает, когда я вызываю его в браузере.

На локальном хосте я использовал этот метод (думал, диспетчер веб-приложений Tomcat), чтобы перезапустить приложение, и оно работает (без виртуального хоста).

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>`

person Ndrik7    schedule 09.01.2019    source источник


Ответы (1)


Итак, каким-то образом я нашел решение в документации 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>

to

<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, чтобы остановить и запустить виртуальный хост.

Я надеюсь, что это может помочь.

person Ndrik7    schedule 09.01.2019