一、什么是tomcat
Tomcat就是用来解析jsp程序的一个软件
Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。
二、安装GDK
下载jdk 官网地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
在这里下载jdk-8u91-linux-x64.tar.gz
tar zxvf jdk-8u91-linux-x64.tar.gz mv jdk1.8.0_91 /usr/local/jdk1.8.0_91
vim /etc/profile.d/java.sh //加入如下配置
JAVA_HOME=/usr/local/jdk1.8.0_91 JAVA_BIN=/usr/local/jdk1.8.0_91/bin JRE_HOME=/usr/local/jdk1.8.0_91/jre PATH=$PATH:/usr/local/jdk1.8.0_91/bin:/usr/local/jdk1.8.0_91/jre/bin CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/charsets.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
运行:
. /etc/profile.d/java.sh
如果以上配置成功,则下面的命令可以看到java的版本:
java -version java version "1.8.0_91" Java(TM) SE Runtime Environment (build 1.8.0_91-b14) Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
三、安装tomcat
Tomcat 官网tomcat.apache.org
cd /usr/local/src/ wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-7/v7.0.69/bin/apache-tomcat-7.0.69.tar.gz tar zxvf apache-tomcat-7.0.69.tar.gz mv apache-tomcat-7.0.69 /usr/local/tomcat cp -pv /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
vim /etc/init.d/tomcat //从第二行加入
# chkconfig: 2345 63 37 # description: tomcat server init script # Source Function Library . /etc/init.d/functions JAVA_HOME=/usr/local/jdk1.8.0_91 CATALINA_HOME=/usr/local/tomcat
chmod 755 /etc/init.d/tomcat chkconfig --add tomcat chkconfig tomcat on service tomcat start
启动成功之后可以看到tomcat的欢迎页
在浏览器中输入(注意打开相应的端口):
http://ip:8080
四、配置tomcat
更改默认启动端口:
vim /usr/local/tomcat/conf/server.xml
找到:
Connector port=“8080”
改为:
Connector port="80"
配置新虚拟主机:
找到:
下一行插入新的内容如下: (www.111.com是域名,本地做一个hosts指定ip就行了,appBase是web程序目录)
<Host name="www.111.com" appBase="/data/tomcatweb" unpackWARs="false" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="./" debug="0" reloadable="true" crossContext="true"/> </Host>
重启:
service tomcat stop; service tomcat start
五、测试jsp解析
vim /data/tomcatweb/111.jsp //内容如下:
<html><body><center> Now time is: <%=new java.util.Date()%> </center></body></html>
curl -xlocalhost:80 www.111.com/111.jsp
看结果是否类似:
<html><body><center> Now time is: Wed Jan 21 22:33:37 CST 2015 </center></body></html>
六、tomcat的三种运行模式
这三种模式的不同之处如下:
bio:
一个线程处理一个请求。缺点:并发量高时,线程数较多,浪费资源。
Tomcat7或以下,在Linux系统中默认使用这种方式。
nio:
利用Java的异步IO处理,可以通过少量的线程处理大量的请求。
Tomcat8在Linux系统中默认使用这种方式。
apr:
即Apache Portable Runtime,从操作系统层面解决io阻塞问题。
Tomcat7或Tomcat8在Win7或以上的系统中启动默认使用这种方式。
Linux如果安装了apr和native,Tomcat直接启动就支持apr。
关于三种模式的介绍这篇文章更详细:http://www.365mini.com/page/tomcat-connector-mode.htm
现在分别配置这个三种模式
bio不用配置,默认就是。
配置文件
/usr/local/tomcat/conf/server.xml
中的 Connector (8080)元素的protocol属性是:HTTP/1.1
nio需要配置
更改配置文件
/usr/local/tomcat/conf/server.xml
中的 Connector (8080)元素的protocol属性为:
org.apache.coyote.http11.Http11NioProtocol
apr 7.0.30 之后的tomcat不需要更改配置文件,但是目前所有版本的tomcat启动apr模式都需要先安装几个依赖。
7.0.30 之前的版本需要更改配置文件
/usr/local/tomcat/conf/server.xml
中的 Connector (8080) 元素的protocol属性为:
org.apache.coyote.http11.Http11AprProtocol
现在来看看依赖的软件怎么安装和配置
1.安装依赖
yum -y install apr-devel openssl-devel
2.安装apr
wget http://apache.fayea.com/apr/apr-1.5.2.tar.gz tar xf apr-1.5.2.tar.gz cd apr-1.5.2 ./configure --prefix=/usr/local/apr make && make install
3.安装tomcat-native (tomcat自带在bin目录下)
cd /usr/local/tomcat/bin tar xf tomcat-native.tar.gz cd tomcat-native-1.1.33-src/jni/native/ ./configure –with-apr=/usr/local/apr/bin/apr-1-config –with-java-home=/usr/local/jdk1.8.0_91 –with-ssl=yes –prefix=/usr/local/tomcat make && make install
4.添加环境变量
echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/tomcat/lib" >>/etc/profile source /etc/profile
更改模式之后重启软件才能生效,具体是看日志文件或是tomcat状态页面,带有关键字:bio、nio、apr
7、配置tomcat管理账号
和账号有关的配置文件是
/usr/local/tomcat/conf/tomcat-users.xml
默认是没有权限访问tomcat的管理页面,所以需要自己添加账号密码以及授予权限
添加以下内容:
<tomcat-users> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/> </tomcat-users>
账号密码都是:admin,重启tomcat后生效
8、tomcat 开机启动脚本
tomcat自带的太复杂,所以在网上找了个简单版本的,虽然还是调用tomcat自带的启动脚本。
大部分内容我重写了一遍,就4个功能,启动、停止、重启、查看状态
内容如下(使用的时候修改相应的环境变量即可,权限设置为755):
#!/bin/sh #tomcat: Start/Stop/Status/Restart tomcat # chkconfig: 2345 80 20 # description: Tomcat is a Java Servlet Container # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 export CATALINA_BASE=/usr/local/tomcat #修改为自己安装的tomcat目录 export CATALINA_HOME=/usr/local/tomcat #修改为自己安装的tomcat目录 export CATALINA_TMPDIR=/usr/local/tomcat/temp export JRE_HOME=/usr/local/jdk1.8.0_91 #修改为自己安装的jdk目录 export CLASSPATH=/usr/local/tomcat/bin/bootstrap.jar export JAVA_HOME=/usr/local/jdk1.8.0_91 #修改为自己安装的jdk目录 lockfile=/var/lock/subsys/tomcat pidfile=/var/run/tomcat.pid prog="Tomcat" sucess="\t\t\t\t\t [\033[32m OK \033[0m"] failed="\t\t\t\t\t [\033[31m FAILED \033[0m"] start(){ if [ -e $lockfile ];then echo -e "$prog: allready running " $failed | sed 's/ //g' exit 1 fi echo -n $"Starting $prog: " if $CATALINA_HOME/bin/startup.sh >/dev/null 2>&1;then echo -e $sucess touch $lockfile ps -ef | grep tomcat | grep java | awk '{print $2}' >$pidfile fi } stop(){ if [ ! -e $pidfile ];then echo -e "$prog: is not runing " $failed | sed 's/ //g' exit 1 fi echo -n $"Stopping $prog: " if kill `cat $pidfile` >/dev/null 2>&1 || rm -rf $pidfile ;then echo $echo -e $sucess rm -rf $lockfile $pidfile fi } status(){ if [ ! -e $pidfile ];then echo -e "$prog: is not runing " $failed | sed 's/ //g' exit 1 fi echo "$prog: (pid `cat $pidfile`) is running..." } case "$1" in start) start ;; stop) stop ;; status) status ;; restart) stop start ;; *) echo $"Usage: $0 {start|stop|status|restart}" ;; esac