标签为 Apr 的文章

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

参考资料:
http://www.javafans.org/article/81

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

以下是具体的安装与配置过程:
关于Tomcat与JDK的安装过程,请参考这一篇文章:http://heylinux.com/archives/621.html

1. 安装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

2. 安装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

3. 安装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
---

,

No Comments