发表于: 2018-04-02 22:15:40

2 695


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin) 

昨天完成了tomcat的单机多实例和nginx负载均衡

基本要点

2.1 分离目录

首先来看一下tomcat的目录结构,一个刚解压出来的tomcat打包文件应该有以下几个目录

目录作用
bin主要存放脚本文件,例如比较常用的windows和linux系统中启动和关闭脚本
conf主要存放配置文件,其中最重要的两个配置文件是server.xml和web.xml
lib主要存放tomcat运行所依赖的包
logs主要存放运行时产生的日志文件,例如catalina.{date}.log等
temp存放tomcat运行时产生的临时文件,例如开启了hibernate缓存的应用程序,会在该目录下生成一些文件
webapps部署web应用程序的默认目录
work主要存放由JSP文件生成的servlet(java文件以及最终编译生成的class文件)

再介绍两个tomcat中比较重要的概念(通常也是两个系统变量)——CATALINA_HOME和CATALINA_BASE:

  • CATALINA_HOME:即指向Tomcat安装路径的系统变量
  • CATALINA_BASE:即指向活跃配置路径的系统变量
    通过设置这两个变量,就可以将tomcat的安装目录和工作目录分离,从而实现tomcat多实例的部署。

Tomcat官方文档指出,CATALINA_HOME路径的路径下只需要包含bin和lib目录,这也就是支持tomcat软件运行的目录,而CATALINA_BASE设置的路径可以包括上述所有目录,不过其中bin和lib目录并不是必需的,缺省时会使用CATALINA_HOME中的bin和conf。如此,我们就可以使用一个tomcat安装目录部署多个tomcat实例,这样的好处在于方便升级,就可以在不影响tomcat实例的前提下,替换掉CATALINA_HOME指定的tomcat安装目录。

我在 /apps下新建了三个目录tomcat[1-3],把/usr/local/tomcat/conf/server.xml复制到这三个目录下。

对每个tomcat的server.xml编辑

将<server>中的port 改为8001/8002/8003  connector中的port改为8081/8082/8083

再新建logs temp work三个空目录。

这时候再在每个tomcat下新建脚本

#!/bin/sh

ETVAL=$?

#tomcat实例目录

export CATALINA_BASE="$PWD"

# tomcat安装目录

export CATALINA_HOME="/usr/local/tomcat"

# 可选

#export JVM_OPTIONS="-Xms128m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=512m"

case "$1" in

start)

if [ -f $CATALINA_HOME/bin/startup.sh ];then

echo $"Start Tomcat"

$CATALINA_HOME/bin/startup.sh

fi

;;

stop)

if [ -f $CATALINA_HOME/bin/shutdown.sh ];then

echo $"Stop Tomcat"

$CATALINA_HOME/bin/shutdown.sh

fi

;;

*)

echo $"Usage: $0 {start|stop}"

exit 1

;;

esac

exit $RETVAL


chmod a+x tomcat.sh


通过。/tomcat.sh start/stop来启动对应序号的tomcat。





明天计划的事情:(一定要写非常细致的内容) 

nginx动静分离负载均衡都做了。

使用resin

遇到的问题:(遇到什么困难,怎么解决的)

tomcat的shutdown port也需要分开端口号

收获:(通过今天的学习,学到了什么知识)

tomcat的单机多实例和 nginx负载均衡。



返回列表 返回列表
评论

    分享到