在谈到tomcat优化时,必然要说到apr库,这个库是C语言实现的,tomcat通过JNI方式使用该库可以大大提高性能。

tomcat在使用apr时需要安装apr,apr-util和tomcat-native。

1. 下载

apr和apr-util需要单独下载:http://apr.apache.org/download.cgi。

tomcat-native就在$CATALINA_HOME/bin目录下:tomcat-native.tar.gz。

2. 安装apr库

(1)安装apr:安装在/usr/local/apr

[root@centosx64_tomcat1 ~]# tar xvf apr-1.6.2.tar.gz
[root@centosx64_tomcat1 ~]# cd apr-1.6.2
[root@centosx64_tomcat1 apr-1.6.2]# ./configure --prefix=/usr/local/apr
[root@centosx64_tomcat1 apr-1.6.2]# make && make test && make install

(2)安装apr-util:安装到/usr/local/apr-util

[root@centosx64_tomcat1 ~]# tar xvf apr-util-1.6.0.tar.gz
[root@centosx64_tomcat1 ~]# cd apr-util-1.6.0
[root@centosx64_tomcat1 apr-util-1.6.0]# ./configure --with-apr=/usr/local/apr --prefix=/usr/local/apr-util
[root@centosx64_tomcat1 apr-util-1.6.0]# make && make install

3. 安装tomcat-native

[root@centosx64_tomcat1 ~]# cd TOMCAT_HOME/bin
[root@centosx64_tomcat1 ~]# tar xvf tomcat-native.tar.gz
[root@centosx64_tomcat1 ~]# cd tomcat-native-1.1.30-src/jni/native
[root@centosx64_tomcat1 ~]# ./configure --with-apr=/usr/local/apr --with-java-home=$JAVA_HOME && make && make install

4. 配置tomcat使用apr库

有2种方式配置tomcat使用apr库:

方式一:配置环境变量

在unix系统中,只要$LD_LIBRARY_PATH变量值所在路径包含tomcat本地库,默认就使用org.apache.coyote.http11.Http11AprProtocol。

vim /etc/profile
export LD_LIBRARY_PATH=/usr/local/apr/lib
source /etc/profile

方式二:将apr库路径参数添加到系统变量中(推荐)

编辑$CATALINA_HOME/bin/setenv.sh文件(如果文件不存在,新建文件):

export CATALINA_OPTS="$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib"

修改$TOMCAT_HOME/conf/server.xml:

<Connector port="8000" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"

protocal修改为:org.apache.coyote.http11.Http11AprProtocol,重启tomcat。

5. 检查是否安装成功

如果看到下面的启动日志,表示成功.

Sep 17, 2017 1:59:19 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
Sep 17, 2017 1:59:19 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Sep 17, 2017 1:59:19 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 31002 ms

6. 解决报错

(1)./configure时报错:

[root@centosx64_tomcat1 apr-1.6.2]# ./configure --prefix=/usr/local/apr
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
Configuring APR library
Platform: x86_64-pc-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.6.2
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in '/root/apr-1.6.2':
**configure: error: no acceptable C compiler found in $PATH**
See `config.log' for more details

fix: 需要安装gcc编译器

[root@centosx64_tomcat1 apr-1.6.2]# yum -y install gcc

(2)./configure时报错:

[root@centosx64_tomcat1 apr-1.6.2]# ./configure --prefix=/usr/local/apr
configure: creating ./config.status
config.status: creating Makefile
config.status: creating include/apr.h
config.status: creating build/apr_rules.mk
config.status: creating build/pkg/pkginfo
config.status: creating apr-1-config
config.status: creating apr.pc
config.status: creating test/Makefile
config.status: creating test/internal/Makefile
config.status: creating include/arch/unix/apr_private.h
config.status: executing libtool commands
**rm: cannot remove `libtoolT': No such file or directory**
config.status: executing default commands

fix: 修改configure脚本

Edit your configure file:vim configure

Change the line

$RM "$cfgfile"
to $RM -f "$cfgfile"
This will resolve the error rm: cannot remove `libtoolT': No such file or directory
Then try run configure. That's it :)

参考:https://stackoverflow.com/questions/18091991/error-while-compiling-apache-apr-make-file-not-found

tomcat优化之安装并配置apr库的更多相关文章

  1. tomcat是什么?Tomcat 下载、安装、配置图文教程

    你用浏览器上网的所有操作,所有请求发送给服务器(tomcat),服务器通过请求,找相应的逻辑处理程序(jsp或servelet或java类,就是有关java语言的所有可以处理逻辑的代码,其中包括访问后 ...

  2. Tomcat服务器的安装及配置

    学习目标: 了解Tomcat服务器的主要作用 掌握Tomcat服务器的安装与配置 掌握Tomcat安装目录下主要文件夹的作用 jsp的执行流程 1.Web的工作原理流程图:从图中可以看出Tomcat服 ...

  3. JavaWeb:Tomcat服务器的安装与配置

    Tomcat服务器的安装与配置 安装 输入网址进入Tomcat的官网            在左边导航栏选择对应下载的版本            下载安装包形式            下载并解压到我们 ...

  4. CentOS安装、配置APR和tomcat-native

    APR:Apache Portable Run-time libraries,Apache可移植执行库 在早期的Apache版本号中.应用程序本身必须可以处理各种详细操作系统平台的细节,并针对不同的平 ...

  5. Tomcat服务的安装与配置

    介绍 百度百科 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun 和其他一些公司及个人共同开 ...

  6. 27、Tomcat服务的安装与配置

    服务器名称 ip地址 slave-node1 172.16.1.91 27.1. Tomcat简介: Tomcat是Apache软件基金会(Apache Software Foundation)的Ja ...

  7. Tomcat服务的安装及配置

    在进行Java Web开发时必须有Web服务器的支持,常用的Web服务器便是Tomcat,本文主要介绍Tomcat的安装和配置.客户端通过Web浏览器发送一个基于HTTP协议的请求到服务器上后,服务器 ...

  8. Tomcat服务器的安装和配置

    一.Tomcat下载 可以直接从Apache的网站上下载Tomcat(http://tomcat.apache.org/),进入首页后,在左边Download一栏可选择你要下载的版本,点击便可进入To ...

  9. CentOS 7 Tomcat服务的安装与配置

    3422人阅读  http://blog.51cto.com/13525470/2073657 一.Linux下的Java运行环境 Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由S ...

随机推荐

  1. Hdoj 1875.畅通工程再续 题解

    Problem Description 相信大家都听说一个"百岛湖"的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖 ...

  2. 763. Partition Labels

    我一开始看数据范围很小,没怎么想就直接暴力了. 暴力的思路是: 对于每一段S的前缀,这个前缀中的每一个字母都不应该在前缀的补集中出现,所以直接循环i:0 to S.length然后对于每一次循环,再循 ...

  3. 「SCOI2015」小凸玩密室 解题报告

    「SCOI2015」小凸玩密室 虽然有心里在想一些奇奇怪怪的事情的原因,不过还是写太久了.. 不过这个题本身也挺厉害的 注意第一个被点亮的是任意选的,我最开始压根没注意到 \(dp_{i,j}\)代表 ...

  4. bzoj3514(LCT+主席树)

    题目描述 N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数. 题解 对于一个截止时间来说,越晚的变越好. 所以我们可以维护一颗以边的序号为关键字的最大生成树,然后用主席树维 ...

  5. Docker的脚本安装

    官方镜像支持 curl -sSL https://get.docker.com/ | sh 国内镜像站 curl -sSL https://get.daocloud.io/docker | sh cu ...

  6. 洛谷P3709 大爷的字符串

    题意:多次求区间众数的出现次数. 解: 这题居然可以莫队...... 首先开个桶.然后还要开个数组,cnt[i]表示出现i次的数有多少个. 然后就可以O(1)修改了. #include <cst ...

  7. Miniconda 虚拟环境安装及应用

    首先要下载Miniconda安装包 下载地址  链接:https://pan.baidu.com/s/1rj-9exKBSHnCCxqq7JQSxA      提取码:ab53 下一步 打开下载好的M ...

  8. Python三大web框架简单介绍

    Django 是重量级框架:它封装的的功能常丰富非常多所以它是重量级,Django的文档最完善.市场占有率最高.招聘职位最多.Django提供全套的解决方案(full-stack framework ...

  9. log.error("异常:", e);与log.error(e.getMessage());区别

    转: log.error("异常:", e);与log.error(e.getMessage());区别 2017年04月28日 14:51:32 行走的soong 阅读数:120 ...

  10. Day013--Python--内置函数一

    一.作用域相关(2) 1. globals()  查看全局空间作用域中的内容. 函数会以字典的类型返回全部全局变量. 2. locals()  查看当前空间作用域中的内容. 函数以字典的类型返回当前位 ...