Tomcat Перезапустите виртуальный хост из диспетчера веб-приложений Tomcat. - PullRequest
0 голосов
/ 09 января 2019

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

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

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

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

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

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 голосов
/ 09 января 2019

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

Надеюсь, это поможет.

...