tomcat 配置和使用
本文最后更新于 2388 天前,其中的信息可能已经有所发展或是发生改变。

一、什么是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
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇