博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【迁移2016-07-02 20:46】Tomcat(一)-重定向Web应用程序目录
阅读量:6225 次
发布时间:2019-06-21

本文共 4276 字,大约阅读时间需要 14 分钟。

  hot3.png

说明

  • 使用Tomcat二进制发行版,版本6.0.45,且已安装
  • 安装目录为/usr/server/apache-tomcat-6.0.45($CATALINA_HOME)
  • 以tomcat用户启动,tomcat登陆shell设为/sbin/nologin
  • 系统环境Linux Mint 16

在安装一份Tomcat发行版的情况下,怎么同时运行两个以上的不同配置的Tomcat实例?一般在使用tomcat时,服务器会从conf及webapps目录中读取配置文件,并将文件写入logs、temp、work目录,当然,一些jar文件和class文件需要从服务器公共目录树中予以加载。为了让多个实例都能运行,每个tomcat实例必须都有自己的目录集,且他们不能共享两个不同的已配置的Tomcat JVM实例。做法就是将CATALINA_BASE的环境变量设置成与新存储JVM实例文件(自己生成的网站文件目录集)相同的路径,这样启动时就会使用CATALINA_BASE中定义的文件运行。如此一来,我们就做到了网站文件和Tomcat发行版文件分开,即重定向了Web应用程序的目录。

1. Tomcat目录结构

Tomcat根目录在叫$CATALINA_HOME, 里面有7个目录

  1. $CATALINA_HOME/bin: 存放各种平台下启动和关闭tomcat的脚本文件
  2. $CATALINA_HOME/lib: 在lib目录下的lib目录,存放tomcat服务器和所有web应用都能访问的jar
  3. $CATALINA_HOME/work: tomcat把各种由jsp生成的servlet文件放在这个目录下
  4. $CATALINA_HOME/temp: 临时活页夹,tomcat运行时候存放临时文件用的
  5. $CATALINA_HOME/logs: 存放tomcat的日志文件
  6. $CATALINA_HOME/conf: tomcat的各种配置文件,最重要的是server.xml
  7. $CATALINA_HOME/webapps: tomcat的主要web发布目录,默认情况下把Web应用文件放于此目录

2. 重定向

创建放置实例文件的目录

twen@twen-thinkpad $ cd /opttwen@twen-thinkpad /opt $ sudo mkdir tomcat-instancetwen@twen-thinkpad /opt $ cd tomcat-instance

为新实例创建目录(将网站存入其中后最好对其命名)

twen@twen-thinkpad /opt/tomcat-instance $ sudo mkdir twen.cntwen@twen-thinkpad /opt/tomcat-instance $ cd twen.cn

将Tomcat发行版的config目录复制到新目录中,然后创建Tomcat其他的实例全部目录

twen@twen-thinkpad /opt/tomcat-instance/twen.cn $ sudo cp -a $CATALINA_HOME/conf ./twen@twen-thinkpad /opt/tomcat-instance/twen.cn $ sudo mkdir logs temp webapps work

最后,将此实例的Web应用程序内容放入webapps子目录中。编辑conf/server.xml文件为指定该实例文件,并将文件修改为只包含运行该实例所需的参数。 将停止端口换成不同的端口号

连接器的端口号

删除其中所有的Context元素

3. 启动实例

为了方便启动,写一个简单启动脚本

twen@twen-thinkpad /opt/tomcat-instance/twen.cn $ sudo mkdir bintwen@twen-thinkpad /opt/tomcat-instance/twen.cn $ cd bintwen@twen-thinkpad /opt/tomcat-instance/twen.cn/bin $ sudo touch start

编写start文件,加入下面内容

#!/bin/shexport CATALINA_BASE=/opt/tomcat-instance/twen.cnexport CATALINA_HOME=/usr/server/apache-tomcat-6.0.45$CATALINA_HOME/bin/catalina.sh start

$CATALINA_HOME子目录webapps下的ROOT拷贝到此刻的$CATALINA_BASE

twen@twen-thinkpad /opt/tomcat-instance/twen.cn/bin $ sudo cp -a $CATALINA_HOME/webapps/ROOT /opt/tomcat-instance/twen.cn/webapps

改变文件拥有者为tomcat, 改变模式使之有执行权限

twen@twen-thinkpad /opt/tomcat-instance/twen.cn/bin $ sudo chown tomcat stoptwen@twen-thinkpad /opt/tomcat-instance/twen.cn/bin $ sudo chmod u+x stop

用户tomcat启动

twen@twen-thinkpad /opt/tomcat-instance/twen.cn/bin $ sudo -u tomcat ./start

log如下

Using CATALINA_BASE:   /opt/tomcat-instance/twen.cnUsing CATALINA_HOME:   /usr/server/apache-tomcat-6.0.45Using CATALINA_TMPDIR: /opt/tomcat-instance/twen.cn/tempUsing JRE_HOME:        /usrUsing CLASSPATH:       /usr/server/apache-tomcat-6.0.45/bin/bootstrap.jar

访问127.0.0.1:8081,显示TOM猫出现了成功。

现在同时启动$CATALINA_HOME中的实例

twen@twen-thinkpad /opt/tomcat-instance/twen.cn $ sudo -u tomcat $CATALINA_HOME/bin/catalina.sh start

同样log如下

Using CATALINA_BASE:   /usr/server/apache-tomcat-6.0.45Using CATALINA_HOME:   /usr/server/apache-tomcat-6.0.45Using CATALINA_TMPDIR: /usr/server/apache-tomcat-6.0.45/tempUsing JRE_HOME:        /usrUsing CLASSPATH:       /usr/server/apache-tomcat-6.0.45/bin/bootstrap.jar

访问127.0.0.1:8080,显示TOM猫出现了,也成功。

再看一眼实例

twen@twen-thinkpad /opt/tomcat-instance/twen.cn $ ps -ef | grep tomcat

显示如下

tomcat    3190     1  0 17:33 pts/0    00:00:25 /usr/bin/java -Djava.util.logging.config.file=/usr/server/apache-tomcat-6.0.45/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/server/apache-tomcat-6.0.45/endorsed -classpath /usr/server/apache-tomcat-6.0.45/bin/bootstrap.jar -Dcatalina.base=/usr/server/apache-tomcat-6.0.45 -Dcatalina.home=/usr/server/apache-tomcat-6.0.45 -Djava.io.tmpdir=/usr/server/apache-tomcat-6.0.45/temp org.apache.catalina.startup.Bootstrap starttomcat    3226     1  0 17:34 pts/0    00:00:24 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat-instance/twen.cn/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/server/apache-tomcat-6.0.45/endorsed -classpath /usr/server/apache-tomcat-6.0.45/bin/bootstrap.jar -Dcatalina.base=/opt/tomcat-instance/twen.cn -Dcatalina.home=/usr/server/apache-tomcat-6.0.45 -Djava.io.tmpdir=/opt/tomcat-instance/twen.cn/temp org.apache.catalina.startup.Bootstrap start

可以看出不同

转载于:https://my.oschina.net/twen/blog/1925464

你可能感兴趣的文章
MySQL InnoDB的一些参数说明
查看>>
PHP安全编程:跨站请求伪造CSRF的防御(转)
查看>>
.net 4.5如何使用Async和Await进行异步编程
查看>>
Android实现系统重新启动
查看>>
C++面向对象程序设计的一些知识点(3)
查看>>
DEDECMS网站管理系统Get Shell漏洞
查看>>
linux概念之分区与文件系统
查看>>
《practical Java》读书笔记
查看>>
ZOJ--3631--Watashi's BG【枚举】
查看>>
MySQL数据库学习笔记(五)----MySQL字符串函数、日期时间函数
查看>>
NPOI 导出excel带图片,可控大小
查看>>
算法数据结构(一)-B树
查看>>
阿里云官方教程 Linux 系统挂载数据盘
查看>>
(数组)众数问题
查看>>
如何写一个简单的手写识别算法?
查看>>
JavaScript学习笔记——函数
查看>>
atitit.基于 Commons CLI 的命令行原理与 开发
查看>>
Blog CSS
查看>>
git workflow 原文 以及缺点
查看>>
QT对话框中show和exec的区别
查看>>