通过集成APR提高tomcat处理静态资源的能力

Tomcat在处理静态资源上面有一定的能力缺陷,所以通常我们会通过Apache与Tomcat集成,让Apache处理所有的静态内容来进行优化。
但其实,我们可以直接使用tomcat的本地connector来解决这个问题。
APR(Apache portable Run-time libraries,Apache可移植运行库)是Apache提供的一组通用的JNI接口,通过本地化的方法来提高应用与系统的交互,比如磁盘io,网络io等。主要提高web容器(Tomcat,Jboss等)对静态文件的处理性能,同时也可以提升SSL的处理性能。

 

安装jdk+tomcat

一、安装配置JDK
1.通过官方网站下载JDK(集合了所有版本):
http://www.oracle.com/technetwork/java/archive-139210.html

下面以 jdk1.6.0_21 64位 为例:
#chmod +x jdk-6u21-linux-x64.bin
#./jdk-6u21-linux-x64.bin

安装后在当前目录下会产生文件夹 jdk1.6.0_21
#mv jdk1.6.0_21 /usr/java/jdk

接下来编辑/etc/profile文件加入JDK环境变量,在文件末尾处加入以下内容:
#vi /etc/profile

1export JAVA_HOME=/usr/java/jdk
2export JRE_HOME=/usr/java/jdk/jre
3export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
4export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#source /etc/profile //使配置文件的内容立刻生效;

# set //在这里你可以看见当前所有的环境变量;
# java –version //如果JDK配置正确的话,运行该命令将会出现JDK的相应版本;

二、安装配置Tomcat
1.通过官方网站下载Tomcat:
http://tomcat.apache.org/

下面以 tomcat 6.0.29 为例:
下载tomcat 6.0.29的软件包 apache-tomcat-6.0.29.tar.gz;

2.安装配置Tomcat
解压缩tomcat软件包
# tar -vzxf apache-tomcat-6.0.29.tar.gz
# mv apache-tomcat-6.0.29 /tomcat

修改tomcat启动脚本,加入tomcat环境变量与JDK环境变量
#vi /tomcat/bin/catalina.sh

在“OS specific support.”这一行之前增加以下配置:

1# Define the Tomcat Home
2export CATALINA_HOME=/tomcat
3# Define the JDK
4export JAVA_HOME=/usr/java/jdk
5export JRE_HOME=/usr/java/jdk/jre
6export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
7export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

#/tomcat-6.0.29/bin/catalina.sh start //启动Tomcat

将显示以下信息:
Using CATALINA_BASE: /tomcat-6.0.29
Using CATALINA_HOME: /tomcat-6.0.29
Using CATALINA_TMPDIR: /tomcat-6.0.29/temp
Using JRE_HOME: /usr/java/jdk1.6.0_21/jre

在浏览器中访问http://Server主机IP:8080,即可看见Tomcat的默认页面

 

3 安装apr
# wget http://labs.renren.com/apache-mirror//apr/apr-1.4.6.tar.gz
# tar xzvf apr-1.4.6.tar.gz
# cd apr-1.4.6
# ./configure --prefix=/opt/tomcat-6.0.29/apr
# make
# make install

4安装apr-util
# wget http://labs.renren.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
# tar xzvf apr-util-1.4.1.tar.gz
# cd apr-util-1.4.1
# ./configure --prefix=/opt/tomcat-6.0.29/apr --with-apr=/opt/tomcat-6.0.29/apr
# make
# make install

5安装tomcat-native-connector
# wget http://labs.renren.com/apache-mirror//tomcat/tomcat-connectors/native/1.1.23/source/tomcat-native-1.1.23-src.tar.gz
# tar xzvf tomcat-native-1.1.23-src.tar.gz
# cd tomcat-native-1.1.23-src/jni/native
# ./configure --prefix=/opt/tomcat-6.0.29/apr --with-apr=/opt/tomcat-6.0.29/apr --with-java-home=/usr/java/jdk1.6.0_21
# make
# make install

# vim /opt/tomcat-6.0.29/bin/catalina.sh
在“OS specific support.”这一行之前增加以下配置:
---
CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/opt/tomcat-6.0.29/apr/lib"
---

如果在log中能够看到以下类似的“Http11AprProtocol”与“AjpAprProtocol”的启动信息,则代表集成apr成功。
而此时,Tomcat对静态资源的处理能力已经得到了提升。

---
INFO: Deploying web application directory examples
Mar 28, 2012 3:40:32 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Mar 28, 2012 3:40:32 PM org.apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
Mar 28, 2012 3:40:32 PM org.apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
Mar 28, 2012 3:40:32 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 1440 ms