tomcat单机多实例

Tomcat单机多实例

 

Tomcat的目录结构:

bin – 包含所有运行tomcat的二进制和脚本文件

lib – 包含tomcat使用的所有共享库

conf - 包含配置信息,如tomcat绑定的端口等

l server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等;

l tomcatusers.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;

l web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!

l context.xml:对所有应用的统一配置,通常我们不会去配置它。

logs – 包含所有的日志文件

temp – 此目录是tomcat存放的临时文件

webapps  此目录非常重要,这里存放所有的应用程序war包(项目包). 存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。http://localhost:8080/1607a,进入示例项目。其中1607a就是项目名,即文件夹的名字。

work – 如果应用程序包含jsp文件,那么每个jsp文件会被编译转化为servlet,存放于此,运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

运行Tomcat时,会用到5个环境变量:

CATALINA_HOME

CATALINA_BASE

CATALINA_TMPDIR

JRE_HOME/JAVA_HOME

CLASSPATH

在以上列表中,CATALINA_HOME和JAVA_HOME是必要的环境变量。其它的都可以通过CATALINA_HOME来转换,是可选的。

CATALINA_HOME – 此环境变量是tomcat安装/提取的根目录。所以通过CATALINA_HOME,可以得到bin和lib目录。

CATALINA_BASE – 如果不指定则是CATALINA_HOME的值。该变量指向的目录里面包括每个运行实例需要使用自己的conf、logs、temp、webapps、work目录。

一般运行Tomcat的方法是,只设置CATALINA_HOME变量,执行startup.sh脚本,startup.sh会自动转换其它未设置的变量。

当一个进程的线程超过500个的话,那么这个进程的运行效率会变得很低。因为一个进程产生过多的线程,CPU资源会浪费在线程间切换过程当中。但当服务器配置很高的情况下,如:32G内存,16核的CPU。这样一台高配的机器上只装一个Tomcat实例,会有点浪费。其实我们可以根据服务器的硬件配置,配置多个Tomcat实例,充分利用硬件的资源。你第一时间可能会想到,直接下载多份Tomcat安装包,直接解压,改下端口跑起来不就可以了? 这样也是可以的,但不好维护。假设你在一台机器上安装了5个Tomcat实例,日后要升级Tomcat时,你需要将新版本的tomcat复制并覆盖掉旧的5个tomcat安装程序和配置,所以还是挺麻烦的。下面介绍多个Tomcat实例共享同一个安装包的配置方法。

安装部署环境:

Jdk版本以及安装目录:

Jdk版本:1.8.0_20  目录:/usr/java

Tomcat版本apache-tomcat-7.0.47.tar.gz

Tomcat安装目录:/usr/local/tomcat_all

Tomcat中两个实例的目录(组成一个小集群):

/usr/local/tomcats/tomcat1

/usr/local/tomcats/tomcat2

安装jdk

# rpm -ivh jdk-8u20-linux-x64.rpm

添加环境变量:

# vi /etc/profile

######java use####

export JAVA_HOME=/usr/java/jdk1.8.0_20

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

验证是否安装成功:

# source /etc/profile

# java –version

安装Tomcat:

关闭防火墙selinux

# service  iptables  stop

# vi /etc/selinux/config

# tar zxf apache-tomcat-7.0.47.tar.gz

# mv apache-xxxxx /usr/local/tomcat_all

# cp –r  apache-tomcat-7.0.47 /usr/local/tomcat_all

拷贝Tomcat安装目录下conf目录分别到两个实例的目录中。

# mkdir /usr/local/tomcats

# mkdir /usr/local/tomcats/tomcat1

# mkdir /usr/local/tomcats/tomcat2

# cp -r /usr/local/tomcat_all/conf/ /usr/local/tomcats/tomcat1/

# cp -r /usr/local/tomcat_all/conf/ /usr/local/tomcats/tomcat2/

分别修改以上两个实例中server.xml中三个端口(Server、HTTP、AJP),不要和其它实例的端口或系统已经占用的端口发生冲突。

# vi  /usr/local/tomcats/tomcat1/conf/server.xml

# vi  /usr/local/tomcats/tomcat2/conf/server.xml

创建实例部署的应用目录(可以不修改,直接放在Tomcat_all安装目录的webapps目录中,如果重新设置,需要到server.xml中进行配置项修改appBase)。

创建启动和停止脚本:

启动脚本:

# cd /usr/local/tomcat/tomcat1

# mkdir bin

# vi startup.sh

#!/bin/bash

export JRE_HOME=/usr/java/jdk1.8.0_20/jre

export CATALINA_HOME=/usr/local/tomcat_all

export CATALINA_BASE="/usr/local/tomcats/tomcat1"

export CATALINA_TMPDIR="$CATALINA_BASE/temp"

export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"

#创建logs目录

if [ ! -d "$CATALINA_BASE/logs" ]; then

  mkdir $CATALINA_BASE/logs

fi

#创建temp目录

if [ ! -d "$CATALINA_BASE/temp" ]; then

  mkdir $CATALINA_BASE/temp

fi

# 调用tomcat启动脚本

bash $CATALINA_HOME/bin/startup.sh "$@"

# chmod +x startup.sh

同理做Tomcat2的即可。

停止脚本:

# cd /usr/local/tomcat/tomcat1/bin

# vi shutdown.sh

#!/bin/bash

export JRE_HOME=/usr/java/jdk1.8.0_20/jre

export CATALINA_HOME=/usr/local/tomcat_all

export CATALINA_BASE="/usr/local/tomcat/tomcat1"

export CATALINA_TMPDIR="$CATALINA_BASE/temp"

export CATALINA_PID="$CATALINA_BASE/bin/tomcat.pid"

bash $CATALINA_HOME/bin/shutdown.sh "$@"

# chmod +x shutdown.sh

Tomcat2中做相应的修改即可。

服务器启动之后,会分别在相应的实例目录下生成logs、temp、work和webapps目录。另外也可以在实例目录下创建lib目录,用于存放app的jar。现在来看实例的安装目录,就和tomcat的安装包解压后的目录结构一样了,但所有实例共享同一套tomcat安装程序的bin和lib。后面如果需要升级tomcat或修改tomcat脚本的相关配置,只需要更新这一套程序就行,也方便了日后的维护。

Tomcat配置文件中端口号:

Shutdown port – 此端口用于关闭Tomcat。当执行shutdown.sh脚本时,它会给此端口发出一个信号,Tomcat的进程会监听此端口,如果接收到这样的信号,进程会清理退出。

Connector port - 此端口是应用对外公开发布的端口。

ajp port – Web服务器(例如Apache的httpd Server)通过此端口和Tomcat进行通信,也可以使用它设置一个负载均衡服务器。

上面配置了配置server port =8105,connector port = 8081,ajp port = 8109

Redirect port – 如果此Connector支持非SSL请求和接收SSL请求,Catalina会自动将请求指向到此端口

原文地址:https://www.cnblogs.com/luyuheng/p/11646280.html