文档章节

单Tomcat多Service配置

Soi
 Soi
发布于 2015/10/18 17:57
字数 577
阅读 95
收藏 2

      记得以前搭建项目时,遇到了多项目时,并不懂得怎么去分离开项目,一开始的做法,在一个Tomcat上使用项目名称区别的方法搭建项目。今天试了用多Service方式,记录下步骤,以备忘。

soi@soi:/opt/apache/tomcat/8.0.27$sudo cp conf/server.xml conf/server.xml.bk
soi@soi:/opt/apache/tomcat/8.0.27$sudo vi conf/server.xml

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <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" />
  </GlobalNamingResources>
   <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->

    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">

      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->

      <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.authenticator.SingleSignOn" />
        -->

        <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" />

      </Host>
    </Engine>
  </Service>
  <!--开始第二个Service配置-->
<Service name="bbs">

    <Connector port="8090" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <Engine name="bbs" defaultHost="localhost">

      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase=""
            unpackWARs="true" autoDeploy="true">
            <!-- 
                debug=“0”指定debug的等级
                docBase指定项目路径
                path指定项目的访问路径,空表示根路径
                reloadable="true"表示支持部署
             -->
        <Context debug="0" docBase="/srv/www/bbs" path="" privileged="true" reloadable="true"/>

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="bbs_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>
    </Engine>
  </Service>
</Server>

    修改完毕,只需要把项目部署到/srv/www/bbs即可,bbs项目内容如下:

   

soi@soi:/srv/www/bbs$ ll
drwxrwxr-x 6 root root 4096 10月 17 21:28 ./
drwxr-xr-x 3 root root 4096 10月 17 21:54 ../
-rw-rw-r-- 1 root root 4286 10月 15 20:32 favicon.ico
drwxrwxr-x 5 root root 4096 10月 17 21:28 ftl/
drwxrwxr-x 2 root root 4096 10月 17 21:28 META-INF/
drwxrwxr-x 8 root root 4096 10月 17 21:28 static/
drwxrwxr-x 4 root root 4096 10月 17 21:28 WEB-INF/

   

© 著作权归作者所有

共有 人打赏支持
Soi

Soi

粉丝 16
博文 11
码字总数 4845
作品 0
江北
tomcat实现多端口、多域名访问

tomcat可以实现:多个端口访问同一个web应用、不同的应用通过不同的域名进行访问。 本文介绍的都是只启动一个tomcat服务的情况下,当然,实现这些功能也可以通过启动多个tomcat服务实现。 百...

尉迟逍遥
2015/10/10
1K
0
SVN jsvnadmin 安装与基本使用

1. jsvnadmin 介绍 https://code.google.com/p/jsvnadmin/ Svn Admin是一个Java开发的管理Svn服务器的项目用户的web应用。安装好Svn服务器端好,把Svn Admin部署好,就可以通过web浏览器管理...

唐僧他大叔
2017/11/07
0
0
Apache+Tomcat多节点负载均衡集群搭建

前段时间写了一篇关于apache+tomcat单节点多实例的安装部署方法,最近公司做项目又要求做多节点单实例的安装方法,由于配置容易出错,所以写博客记录一下方法,其实也没什么可配置的,就是把...

freshman411
2014/05/13
0
0
关于spring的单例和非单例方面的困惑,javaweb方面的大神请戳入!

我做了一个测试,在我原有的SSH项目中为Service何dao层的方法写一个构造器,里面打印一句话,测试结果表名service和dao层在启动tomcat时就被实例化,也就是说以后不管多少次访问,多少个线程...

上帝爱众生
2015/05/29
1K
1
Tomcat多实例部署及其原理

(一) 什么是tomcat多实例部署? tomcat多实例部署指的是只需要安装一个tomcat服务器软件同时可部署多个应用实例的场景,这样做的好处是: 不需要到处拷贝tomcat软件,减少磁盘空间占用; 当需...

jcc_codingBoy
2016/04/11
505
0

没有更多内容

加载失败,请刷新页面

加载更多

Java GC机制详解

垃圾收集 Garbage Collection 通常被称为“GC”,本文详细讲述Java垃圾回收机制。 导读: 1、什么是GC 2、GC常用算法 3、垃圾收集器 4、finalize()方法详解 5、总结--根据GC原理来优化代码 ...

小刀爱编程
16分钟前
1
0
ORACEL学习--理解over()函数

二、理解over()函数 1.1、两个order by的执行时机 分析函数是在整个sql查询结束后(sql语句中的order by的执行比较特殊)再进行的操作, 也就是说sql语句中的order by也会影响分析函数的执行结果...

spinachgit
18分钟前
1
0
抽象语法树

import asttree = ast.parse('def hello_word(): print("hello world!")')def hell_word(): print(1)print(ast.dump(tree)) 语法树 可以基于这个实现另外一种编程语言...

colin_86
18分钟前
1
0
Akka查询设备组《fourteen》译

加入以下依赖到项目中: 介绍: 到目前为止,我们看到的会话模式很简单,因为它们要求Actor保持很少或没有状态。 特别: 设备actor返回一个读数,不需要更改状态。 记录温度,更新单个字段。...

woshixin
25分钟前
1
0
wait、notify、notifyAll 的用法

wait()、notify()、notifyAll()是三个定义在Object类里的方法,用来控制线程的状态。这三个方法最终调用的都是jvm的native方法, 随着jvm运行平台的不同可能有些许差异。 wait(): 使持有该对...

noob_fly
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部