tomcat 多service 单个service独立启动

1.在tomcat容器中部署多个service

在server.conf中配置
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <GlobalNamingResources>
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
			  
    <Resource name="discoveryServiceDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
			  
			  
    <Resource name="configurationServiceDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />
			  
  </GlobalNamingResources>

  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
      </Realm>
		<Host name="localhost"  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 "%r" %s %b" />
      </Host>
    </Engine>
  </Service>
  
  <Service name="discoveryService">
    <Connector port="8761" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8444" />
    <Connector port="8010" protocol="AJP/1.3" redirectPort="8444" />
    <Engine name="discoveryService" defaultHost="discoveryHost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="discoveryServiceDatabase"/>
      </Realm>
		<Host name="discoveryHost"  appBase="discoveryapp"   unpackWARs="true" autoDeploy="true">
			<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="discovery_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
      </Host>
    </Engine>
  </Service>
  
  <Service name="configurationService">
    <Connector port="1221" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8445" />
    <Connector port="8011" protocol="AJP/1.3" redirectPort="8445" />
    <Engine name="configurationService" defaultHost="configurationHost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="configurationServiceDatabase"/>
      </Realm>
		<Host name="configurationHost"  appBase="configurationapp"   unpackWARs="true" autoDeploy="true">
			<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="configuration_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

上面这样子配置完之后 tomcat启动
可以用以下url访问对应的service

localhost:8761/
localhost:8080/
localhost:1221/

注意点:
1 service标签name不能重复
2.connector中的端口号不能重复
3.realm中的resourceName 对应上面的resource标签
4.host中的appBase的目录从tomcat安装目录开始 {TOMCAT_HOME}/{对应的目录名字}

2. 利用manager重启单个service

2.1把tomcat自带的manager工程放到对应的目录中

2.2tomcat中添加用户权限     tomcat-users.xml
<tomcat-users xmlns="http://tomcat.apache.org/xml"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
              version="1.0">
<!--
  NOTE:  By default, no user is included in the "manager-gui" role required
  to operate the "/manager/html" web application.  If you wish to use this app,
  you must define such a user - the username and password are arbitrary.
-->
<!--
  NOTE:  The sample user and role entries below are wrapped in a comment
  and thus are ignored when reading this file. Do not forget to remove
  <!.. ..> that surrounds them.

  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="jkzl" password="jkzlehr" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>-->
 <role rolename="admin-gui"/>
 <role rolename="admin-script"/>
 <role rolename="manager-gui"/>
 <role rolename="manager-status"/>
 <user username="cwd" password="cwd" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
</tomcat-users>

重启tomcat后 访问页面 http://172.19.103.33:8761/manager/html


就可以通过上面的按钮去重启service
注意点:
1.改种方式 要考虑安全性 建议部署tomcat在内网

3. 安装完manager后利用rest重启单个service

资料:http://tomcat.apache.org/tomcat-8.0-doc/manager-howto.html#Reload_An_Existing_Application

重启的rest接口

HEADER中要放入Basic验证信息
Authorization  Basic Y3dkOmN3ZA==    (在tomcat-users.xml配置的账号密码的加密 格式   cwd:cwd )

GET   http://172.19.103.33:8761//manager/text/reload?path=/    path代表项目的目录 /默认是 ROOT目录

请求成功后返回message
OK - Reloaded application at context path 
 
 
例如



返回请求


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

white......

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值