|
一、安装tomcat
Tomcat是web container,通过java语言开发,所以必须运行在JRE或JDK上,一般安装JDK
1.jdk安装,可以用sun或openjdk,这里用sun的
- 下载地址,下载linuxx64 rpm安装包即可
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 安装
rpm -ivh jdk-8u65-linux-x64.rpm
- 测试安装是否成功
[root@ha111~]# service tomcat status
Usage:tomcat {start|stop|restart}
[root@ha111~]# java -version
javaversion "1.8.0_65"
Java(TM)SE Runtime Environment (build 1.8.0_65-b17)
JavaHotSpot(TM) 64-Bit Server VM (build 25.65-b01, mixed mode)
有上述显示即安装成功
2.环境变量设置
- vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$PATH
- 生效
source /etc/profile.d/java.sh
3、安装tomcat
- 下载地址(这里用8.0的,apache-tomcat-8.0.28.tar.gz)
http://tomcat.apache.org/download-80.cgi
- 安装
tar xvzfapache-tomcat-8.0.28.tar.gz -C /usr/local/
ln -sv/usr/local/apache-tomcat-8.0.28/ /usr/local/tomcat
- 环境变量设置
vim /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH
- 立即生效
source /etc/profile.d/tomcat.sh
- 添加系统服务
vim /etc/init.d/tomcat
- #!/bin/sh
# Tomcat init script for Linux.
#
# chkconfig: 2345 96 14
# description: The Apache Tomcat servlet/JSPcontainer.
# JAVA_OPTS='-Xms64m -Xmx128m'
JAVA_HOME=/usr/java/latest #注意这些路径是否正确
CATALINA_HOME=/usr/local/tomcat #注意这些路径是否正确
export JAVA_HOME CATALINA_HOME #这句不加也可以,前面环境都设置好了就行
case $1 in
start)
exec $CATALINA_HOME/bin/catalina.sh start ;;
stop)
exec $CATALINA_HOME/bin/catalina.sh stop;;
restart)
$CATALINA_HOME/bin/catalina.sh stop
sleep 2
exec $CATALINA_HOME/bin/catalina.sh start ;;
*)
echo "Usage: `basename $0`{start|stop|restart}"
exit 1
;;
esac
- 修改默认监听的8080端口为80
vim /usr/local/tomcat/conf/server.xml
在Tomcat中,每一个context定义也可以使用一个单独的XML文件进行,其文件的目录为$CATALINA_HOME/conf//。可以用于Context中的XML元素有Loader,Manager,Realm,Resources和WatchedResource。
常用的属性定义有:
- docBase:Web应用程序的存放位置;也可以使用相对路径,起始路径为此Context所属Host中appBase定义的路径;切记,docBase的路径名不能与相应的Host中appBase中定义的路径名有包含关系,比如,如果appBase为deploy,而docBase绝不能为deploy-bbs类的名字;
- path:访问路径,相对于Web服务器根路径而言的URI;如果为空“”,则表示为此webapp的根路径;如果context定义在一个单独的xml文件中,此属性不需要定义;
- reloadable:是否允许重新加载此context相关的Web应用程序的类;默认为false;
注意:这里有3点很容易混淆
1、appBase和docbase
appbase 表示此虚拟主机下所有java应用的目录,该指令指定目录下的所有目录都会当作一个应用
例如上面/test路径下的所有目录都作为一个应用,docbase表示一个应用的文件存放路径
appbase设置与否其实关系不大,经测试可以设置为空,可以不设置,不设置时,默认会使用/usr/local/tomcat/webapps,此时能访问
到/usr/local/tomcat/webapps目录下的资源,所有建议还是要设置。
2、host和context区别
- host表示一个虚拟主机 context表示虚拟主机下一个jsp的应用
- sever.xml中每建立一个虚拟主机。都会在/usr/local/tomcat/conf/Catalina/新生成一个目录,安装好tomcat后,默认就有一个localhost的虚拟主机目录
3、优先级
- Host中appBase的子目录会优先于Context中的path,如果appBase下没有找到对应的path,则使用Context中配置的path做映射
(7).Realm组件
一个Realm表示一个安全上下文,它是一个授权访问某个给定Context的用户列表和某用户所允许切换的角色相关定义的列表。因
此,Realm就像是一个用户和组相关的数据库。定义Realm时惟一必须要提供的属性是classname,它是Realm的多个不同实现,用于
表示此Realm认证的用户及角色等认证信息的存放位置。
- JAASRealm:基于JavaAuthintication and Authorization Service实现用户认证;
- JDBCRealm:通过JDBC访问某关系型数据库表实现用户认证;
- JNDIRealm:基于JNDI使用目录服务实现认证信息的获取;
- MemoryRealm:查找tomcat-user.xml文件实现用户信息的获取;
- UserDatabaseRealm:基于UserDatabase文件(通常是tomcat-user.xml)实现用户认证,它实现是一个完全可更新和持久有效的MemoryRealm,因此能够跟标准的MemoryRealm兼容;它通过JNDI实现;
四、日志
[root@ha111tomcat]# ls logs/
catalina.2015-11-30.log host-manager.2015-12-01.log localhost_access_log.2015-11-30.txt
catalina.2015-12-01.log host-manager.2015-12-03.log localhost_access_log.2015-12-01.txt
catalina.2015-12-02.log localhost.2015-11-30.log localhost_access_log.2015-12-03.txt
catalina.2015-12-03.log localhost.2015-12-01.log manager.2015-11-30.log
catalina.out localhost.2015-12-02.log manager.2015-12-01.log
host-manager.2015-11-30.log localhost.2015-12-03.log manager.2015-12-03.log
localhost_access_log.2015-11-26.txt 访问日志
localhost.2015-11-26.log错误和其它日志
manager.2015-11-26.log管理日志
catalina.2015-11-26.logTomcat启动或关闭日志文件
五、应用程序(webapp)结构
tomcat自带有两个webapp(应用程序):
- Manager:管理tomcat自身的应用
- Host_manage:管理tomcat的虚拟主机
[root@BAIYU_179tomcat]# ls webapps/ #网站根目录
docs examples host-manager manager ROOT #子应用程序
[root@BAIYU_179tomcat]# ls webapps/host-manager/
images index.jsp manager.xml META-INF WEB-INF
有特定组织形式、层次型目录结构:主要包含了servlet代码文件,JSP页面文件、类文件、部署描述文件等信息(创建一个app必须要有这些文件,文件可以为空但一定要有)
- /:webapp的根目录
- index.jsp:wepapp主页
- WEB-INF:当前webapp的私有资源目录,通常存放当前webapp自用的web.xml和context.xml
- classes:此webapp的私有类(tomcat自带的2个webapp没有私有类,没有该目录)
- lib:此webapp的私有类,被打包为jar格式的类(tomcat自带的2个webapp没有私有类,没有该目录)
- META-INF:私有资源目录(可选的)
手动添加测试应用程序:
1)创建特定目录结构:
[root@BAIYU_179webapps]# pwd
/usr/local/tomcat/webapps
[root@BAIYU_179webapps]# mkdir -pv testapp/{WEB-INF,lib,classes,META-INF}
mkdir:已创建目录"testapp"
mkdir:已创建目录"testapp/WEB-INF"
mkdir:已创建目录"testapp/lib"
mkdir:已创建目录"testapp/classes"
mkdir:已创建目录"testapp/META-INF"
2)创建/usr/local/tomcat/webapps/testapp/index.jsp
[root@BAIYU_179webapps]# cd testapp/
[root@BAIYU_179testapp]# vi index.jsp
1
2
3
4
5 JSP test page.
6
7
8
9
10
3)访问http://localhost/testapp/index.jsp
六、tomcat自带图形管理接口
- manager 管理应用程序的部署及监控
- host-manager 虚拟主机的管理
我们先来看一下默认的图形配置界面,
http://s2.运维网.com/wyfs02/M02/77/27/wKiom1ZkS5DgwJmpAAEebX8LgLo098.png
注,大家注意看右上角,我用红色方框标记出来的,大家可以看有三个按钮,分别为
- Server Status 主要用来查看服务器的状态
- Manager App 主要用来管理应用程序的部署及监控
- Host Manager 主要用来管理虚拟主机
下面我们就来具休的配置一下,大家可以看到,你点击任何一个按钮都要输入用户名和密码的,在我们配置之前我们先来说一下,Tomcat的Manager功能,
Manager的四个管理角色:
- manager-gui - allows access to the HTML GUIand the status pages
- manager-script - allows access to the textinterface and the status pages
- manager-jmx - allows access to the JMXproxy and the status pages
- manager-status - allows access to thestatus pages only
下面我们就来启用manager功能:
1、用户授权
注:先添加角色再添加用户和密码
[root@BAIYU_179 tomcat]# ls conf/
Catalina context.xml server.xml.orig tomcat-users.xsd
catalina.policy logging.properties tomcat-users.xml web.xml
catalina.properties server.xml tomcat-users.xml.orig
[root@BAIYU_179 tomcat]# vim conf/tomcat-users.xml
#在
|
|
|