安装APR

1
wget -P /usr/local/src/ http://mirror.ventraip.net.au/apache//apr/apr-1.6.3.tar.gz

编译安装APR

1
2
3
4
5
6
7
tar xf /usr/local/src/apr-1.6.3.tar.gz -C /usr/local/src/

cd /usr/local/src/apr-1.6.3

./configure --prefix=/usr/local/apr

make && make install

安装apr-util

1
wget -P /usr/local/src/ http://apache.mirror.serversaustralia.com.au//apr/apr-util-1.6.1.tar.gz

编译安装apr-util

1
2
3
4
5
6
7
tar xf /usr/local/src/apr-util-1.6.1.tar.gz -C /usr/local/src/

cd /usr/local/src/apr-util-1.6.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/

make && make install

安装tomcat-native

1
2
3
4
5
6
7
8
9
wget -P /usr/local/src http://apache.mirror.digitalpacific.com.au/tomcat/tomcat-connectors/native/1.2.16/source/tomcat-native-1.2.16-src.tar.gz

tar xf /usr/local/src/tomcat-native-1.2.16-src.tar.gz -C /usr/local/src/

cd /usr/local/src/tomcat-native-1.2.16

./configure --prefix=/usr/local/tomcat-native --with-apr=/usr/local/apr --with-java-home=/usr/local/java/

make && make install

配置Apr模式,编辑server.xml文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?xml version='1.0' encoding='utf-8'?>
<Server port="-1" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="0ff" />
<Listener className="org.apache.catalina.core.JasperListener" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>

<Service name="Catalina">


<Executor name="tomcatThreadPool"
namePrefix="HTTP-8080-exec-"
prestartminSpareThreads="true"
maxThreads="5000"
maxQueueSize="100"
minSpareThreads="50"
/>


<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
executor="tomcatThreadPool"
compressionMinSize1="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,,application/octet-stream" />

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />


<Engine name="Catalina" defaultHost="localhost">


<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>
</Engine>
</Service>
</Server>

编辑catlina.sh文件添加

1
CATALINA_OPTS="$CATALINA_OPTS -Djava.security.egd=file:/dev/./urandom -Djava.library.path=/usr/local/apr/lib -Djava.library.path=/usr/local/apr-util/lib -Djava.library.path=/usr/local/tomcat-native/lib"

重启tomcat服务

1
sudo systemctl restart tomcat.serice