发表于: 2018-04-02 22:15:40
2 697
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了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负载均衡。
评论