• 一个tomcat上部署多个项目,并通过不同端口号访问不同的项目


    原文:http://www.cnblogs.com/kismetv/p/7228274.html#title3-1

    现在以部署两个项目为例:

    第一步:修改tomcat下的server.xml文件

    配置service 节点,个人认为有几个项目,就相应的配置几个service 节点;


    配置了两个端口号:分别为9999和8878

    第二步:先依照此配置文件配置,完成后在tomcat根目录下复制文件夹webapps,粘贴重命名为webapps1,webapps2,如下图:此文件夹就是分别用来部署项目的。

    3、如何配置多个服务

    通过在Server中配置多个Service服务,可以实现通过不同的端口号来访问同一台机器上部署的不同Web应用。

    在server.xml中配置多服务的方法非常简单,分为以下几步:

    (1)复制<Service>元素,放在当前<Service>后面。

    (2)修改端口号:根据需要监听的端口号修改<Connector>元素的port属性;必须确保该端口没有被其他进程占用,否则Tomcat启动时会报错,而无法通过该端口访问Web应用。

    以Win7为例,可以用如下方法找出某个端口是否被其他进程占用:netstat -aon|findstr "8081"发现8081端口被PID为2064的进程占用,tasklist |findstr "2064"发现该进程为FrameworkService.exe(这是McAfee杀毒软件的进程)。

    (3)修改Service和Engine的name属性

    (4)修改Host的appBase属性(如webapps2)

    (5)Web应用仍然使用自动部署

    (6)将要部署的Web应用(WAR包或应用目录)拷贝到新的appBase下。

    以第一部分的server.xml为例,多个Service的配置如下:

    复制代码
     1 <?xml version='1.0' encoding='utf-8'?>
     2 <Server port="8005" shutdown="SHUTDOWN">
     3   <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
     4   <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
     5   <Listener className="org.apache.catalina.core.JasperListener" />
     6   <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
     7   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
     8   <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
     9 
    10   <GlobalNamingResources>
    11     <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" />
    12   </GlobalNamingResources>
    13 
    14   <Service name="Catalina">
    15     <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    16     <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    17     <Engine name="Catalina" defaultHost="localhost">
    18       <Realm className="org.apache.catalina.realm.LockOutRealm">
    19         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    20                resourceName="UserDatabase"/>
    21       </Realm>
    22 
    23       <Host name="localhost"  appBase="/opt/project/webapps" unpackWARs="true" autoDeploy="true">
    24         <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" />
    25       </Host>
    26     </Engine>
    27   </Service>
    28 
    29   <Service name="Catalina2">
    30     <Connector port="8084" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    31     <Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
    32     <Engine name="Catalina2" defaultHost="localhost">
    33       <Realm className="org.apache.catalina.realm.LockOutRealm">
    34         <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    35                resourceName="UserDatabase"/>
    36       </Realm>
    37 
    38       <Host name="localhost"  appBase="/opt/project/webapps2" unpackWARs="true" autoDeploy="true">
    39         <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" />
    40       </Host>
    41     </Engine>
    42   </Service>
    43 </Server>
    复制代码

    再将原webapps下的docs目录拷贝到webapps2中,则通过如下两个接口都可以访问docs应用:

    http://localhost:8080/docs/

    http://localhost:8084/docs/

    当然你可以配置了多个 Service 元素。就需要修改Tomcat的内存参数,防止内存溢出。如果你是linux系统,修改 %TOMCAT_HOME%/bin/catalina.bat 
    -Xms //初始堆大小 
    -Xmx //最大堆大小 
    -XX:PermSize //初始永久区大小 
    -XX:MaxPermSize //最大永久区大小 
    放到有效配置的第一行

    set JAVA_OPTS=-server -Xincgc -Xms1024m -Xmx1024m -XX:MaxPermSize=256m

    如果你是windows系统,去修改注册表吧, 
    HKEY_LOCAL_MACHINESOFTWAREApache Software FoundationProcrun 2.0 omcat6.0ParametersJava 
    右边的 Options 里面一条配置占一行 前后不能有空格。 
    然后重启。

  • 相关阅读:
    es6异步编程 Promise 讲解 --------各个优点缺点总结
    js重新讲解继承,es5的一些继承,es6继承的改变 ----------由浅入深
    node.js里的buffer常见操作,copy,concat等实例讲解
    node.js 写流 createWriteStream----由浅入深
    node.js 读取文件--createReadStream
    Java的位运算符—— 与(&)、非(~)、或(|)、异或(^)
    XML的特殊字符处理
    mysql语句收藏
    MYSQL学习
    利用HTML5 LocalStorage实现跨页面通信channel
  • 原文地址:https://www.cnblogs.com/jiangfeilong/p/10064710.html
Copyright © 2020-2023  润新知