準備工作:
? centos7.3服務(wù)器一臺
? 下載所需用到的軟件包:https://pan.baidu.com/s/1Meys8bsvBsdwVUYak9srKQ
? 提取碼:5bic
1、開始部署:
[root@tomcat /]# rpm -qa | grep jdk # 檢測rpm安裝的jdk環(huán)境
copy-jdk-configs-1.2-1.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
# 將帶有headless的軟件包卸載掉
[root@tomcat /]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64 # 將兩個版本都卸載
[root@tomcat /]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64
[root@tomcat /]# mkdir tomcat
[root@tomcat /]# cd tomcat/
[root@tomcat tomcat]# rz # xshell環(huán)境直接上傳所需軟件包
[root@tomcat tomcat]# ls
apache-tomcat-8.5.35.tar.gz jdk-8u211-linux-x64.tar.gz tomcat 監(jiān)控頁面.txt
[root@tomcat tomcat]# tar zxf jdk-8u211-linux-x64.tar.gz -C /usr/local/ # 將jdk軟件包解壓到指定目錄
[root@tomcat tomcat]# tar zxf apache-tomcat-8.5.35.tar.gz # 解壓Tomcat源碼包
[root@tomcat tomcat]# mv apache-tomcat-8.5.35 /usr/local/tomcat # 移動Tomcat至指定路徑并修改目錄名為Tomcat
[root@tomcat tomcat]# vim /etc/profile # 編輯環(huán)境變量,在文件末尾添加如下幾行
............. // 省略部分內(nèi)容
export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=/usr/local/jdk1.8.0_211/jre
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@tomcat tomcat]# . /etc/profile # 執(zhí)行使之生效
[root@tomcat /]# java -version # 查看Java版本,確保已經(jīng)安裝成功
java version 1.8.0_211
Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh # 啟動Tomcat服務(wù)
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8.0_211/jre
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat /]# netstat -anput | grep 8080 # 查看端口是否正常監(jiān)聽
tcp6 0 0 :::8080 :::* LISTEN 3712/java
可以使用客戶端訪問Tomcat服務(wù)器IP 8080端口,可以看到以下頁面:
二、定義Tomcat多實例
所謂多實例,就是在一臺服務(wù)器上運行多個Tomcat服務(wù),所以,需要注意,在定義Tomcat的多實例時,千萬不要出現(xiàn)端口沖突的情況
[root@tomcat local]# cp -r tomcat tomcat2 # 將Tomcat 復(fù)制一份
[root@tomcat local]# vim tomcat2/conf/server.xml # 編輯復(fù)制的Tomcat主配置文件
#配置文件的所有端口號,除了帶注釋的外,都需要修改,
#只要配置項中帶有“port”的,并且后面是數(shù)字的,都是端口號
#可自行根據(jù)情況進行更改
[root@tomcat local]# /usr/local/tomcat2/bin/startup.sh # 啟動復(fù)制版Tomcat
Using CATALINA_BASE: /usr/local/tomcat2
Using CATALINA_HOME: /usr/local/tomcat2
Using CATALINA_TMPDIR: /usr/local/tomcat2/temp
Using JRE_HOME: /usr/local/jdk1.8.0_211/jre
Using CLASSPATH: /usr/local/tomcat2/bin/bootstrap.jar:/usr/local/tomcat2/bin/tomcat-juli.jar
Tomcat started.
[root@tomcat local]# netstat -anput | grep 8081 # 看到已經(jīng)開始監(jiān)聽
tcp6 0 0 :::8081 :::* LISTEN 3936/java
可以使用客戶端訪問Tomcat服務(wù)器IP 8081端口,可以看到以下頁面(由于是完全復(fù)制之前的Tomcat目錄,所以看到的頁面一樣):
三、配置Tomcat自定義目錄
[root@tomcat /]# mkdir -p /data/project # 創(chuàng)建自定義網(wǎng)站根目錄
[root@tomcat /]# echo aaa > /data/project/index1.jsp # 編輯兩個測試網(wǎng)頁
[root@tomcat /]# echo bbb > /data/project/index2.jsp
[root@tomcat /]# vim /usr/local/tomcat/conf/server.xml # 編輯主配置文件
......................... // 省略部分內(nèi)容
<Host name=localhost appBase=webapps unpackWARs=true autoDeploy=true>
.................. # 找到Host元素,添加如下內(nèi)容
<Context path = /shop docBase=/data/project debug=0 reloadable=false crossContext=true>
</Context>
</Host>
#上述的 <Context....> </Context>標簽的另一種寫法就是<Context......./>
#在上述添加的配置解釋如下:
#Path:指出客戶端訪問的路徑;
#docBase:指定網(wǎng)頁的存放路徑;
#Debug:指定debug的等級為0,輸出信息最少,9提供最多的信息;
#reloadable:為true時表示當web.xml文件有改動的時候自動加載,不必重啟服務(wù);
#CorssContext:為true時,表示不同的context共享一個session(會話池);
[root@tomcat /]# /usr/local/tomcat/bin/shutdown.sh # 執(zhí)行此兩條命令,重啟服務(wù)使配置生效
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh
訪問https://192.168.171.134:8080/shop/index1.jsp 驗證
訪問https://192.168.171.134:8080/shop/index2.jsp 驗證
四、開啟Tomcat目錄遍歷
在apache或Nginx中,它們的目錄遍歷是默認開啟的,而Tomcat服務(wù),它的目錄遍歷默認是關(guān)閉的,有些情況下,我們需要開啟它的目錄遍歷功能
直接訪問192.168.171.134:8080/shop/進行測試,會報錯404:
開啟tomcat的遍歷功能:
[root@tomcat /]# vim /usr/local/tomcat/conf/web.xml
................... //省略部分內(nèi)容
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value> # 搜索false,找到此行,false修改為true即可
</init-param>
[root@tomcat /]# /usr/local/tomcat/bin/shutdown.sh # 重啟tomcat使配置生效
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh
重新訪問192.168.171.134:8080/shop/ 進行測試:
五、Tomcat配置https
[root@tomcat /]# keytool -genkey -v -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/conf/tomcat.eystore -validity 36500 # 獲取證書
Enter keystore # 填寫密鑰
Re-enter new
What is your first and last name? # 你的姓和名是什么?
[Unknown]: zyz
What is the name of your organizational unit? # 你組織單位名稱是什么?
[Unknown]: hh
What is the name of your organization? # 您的組織名稱是什么?
[Unknown]: test
What is the name of your City or Locality? # 你的城市或地區(qū)的名字是什么?
[Unknown]: bj
What is the name of your State or Province? # 你的州或省的名字是什么?
[Unknown]: bj
What is the two-letter country code for this unit? # 這個單位的國家代號是什么?
[Unknown]: cn
Is CN=zyz, OU=, O=test, L=bj, ST=bj, C=cn correct? # 是否確定?
[no]: y
Generating 2,048 bit RSA key pair and self-signed certificate (SHA256withRSA) with a validity of 36,50 days
for: CN=zyz, OU=, O=test, L=bj, ST=bj, C=cn
Enter key password for <tomcat>
(RETURN if same as keystore password): # 直接回車即可
[Storing /usr/local/tomcat/conf/tomcat.keystore]
[root@tomcat /]# vim /usr/local/tomcat/conf/server.xml
................ // 省略部分內(nèi)容
#在service元素中添加如下內(nèi)容
<Connector port=443 protocol=org.apache.coyote.http11.Http11NioProtocol
maxThreads=150 SSLEnabled=true
keystoreFile=/usr/local/tomcat/conf/tomcat.keystore # 指定文件存放位置
keystorePass=123.com > # 指定密鑰
</Connector>
[root@tomcat /]# /usr/local/tomcat/bin/shutdown.sh # 重啟服務(wù)使配置生效
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh
[root@tomcat /]# netstat -anput | grep 443 # 查看端口是否監(jiān)聽
tcp6 0 0 :::443 :::* LISTEN 4795/java
訪問https://192.168.171.134 進行驗證:
六、使用Tomcat實時監(jiān)控JVM虛擬機資源使用情況
[root@tomcat /]# vim /usr/local/tomcat/conf/server.xml
<Host name=localhost appBase=webapps
unpackWARs=true autoDeploy=true>
<Context path = /shop docBase=/data/project debug=0 reloadable=false crossContext=true>
# zai host元素中添加如下內(nèi)容
</Context> <Context path = /jiankong docBase=/data/jiankong debug=0 reloadable=flase crossContext=true/>
</Host>
[root@tomcat /]# mkdir -p /data/jiankong # 創(chuàng)建測試網(wǎng)站根目錄
[root@tomcat /]# vim /data/jiankong/index.jsp # 編輯測試文件
<%
Runtime rtm = Runtime.getRuntime();
long mm = rtm.maxMemory()/1024/1024;
long tm = rtm.totalMemory()/1024/1024;
long fm = rtm.freeMemory()/1024/1024;
out.println(JVM memory detail info :<br>);
out.println(Max memory: mm MB <br>);
out.println(Total memory: tm MB <br>);
out.println(Free memory: fm MB <br>);
out.println(Available memmory can be used is : (mm fm-tm) MB <br>);
%>
[root@tomcat /]# /usr/local/tomcat/bin/shutdown.sh # 重啟服務(wù)使配置生效
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh
訪問http://192.168.171.134:8080/jiankong/ 驗證:
七、開啟JMX遠程調(diào)試功能
[root@tomcat /]# vim /usr/local/tomcat/bin/catalina.sh # 編輯此文件,跳轉(zhuǎn)到306行
export JDK_JAVA_OPTIONS # 在此行下面添加如下內(nèi)容
CATALINA_OPTS= $CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=8888 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true
[root@tomcat /]# cd /usr/local/jdk1.8.0_211/jre/lib/management/
[root@tomcat management]# cp jmxremote.password.template jmxremote.password
[root@tomcat management]# vim jmxremote.password
#跳轉(zhuǎn)到最后一行添加如下內(nèi)容
zyz 123.com
#由于是只讀文件,所以需要wq!強制保存退出
[root@tomcat management]# vim jmxremote.access
#在最后一行添加如下內(nèi)容
zyz readwrite \\\\
create javax.management.monitor.*,javax.management.timer.* \\\\
unregister
[root@tomcat management]# chmod 600 jmxremote.password jmxremote.access #必須修改其權(quán)限為600,否則會失敗
[root@tomcat management]# /usr/local/tomcat/bin/shutdown.sh # 重啟服務(wù)使配置生效
[root@tomcat management]# /usr/local/tomcat/bin/startup.sh
[root@tomcat /]# . /etc/profile # 執(zhí)行刷新變量
[root@tomcat /]# jconsole # 執(zhí)行此命令
驗證其遠程調(diào)試功能,由于其需要圖形化的支持,所以需要進入其圖形化桌面環(huán)境,下面的操作不可以在xshell上進行了:
然后點擊如下:
然后就可以看到如下界面,顯示JVM虛擬機的使用情況:
八、開啟mangent管理頁面
1、在訪問Tomcat的默認界面時,有一個“Manager App”的框,如下:
2、點擊進入后,會看到以下403報錯頁面,我們需要復(fù)制它提示的代碼:
此錯誤頁面,已經(jīng)將原因及該如何配置寫的明明白白的。
3、配置開啟它的manager管理頁面:
[root@tomcat /]# vim /usr/local/tomcat/conf/tomcat-users.xml
#在末尾添加如下兩行
<role rolename=manager-gui/>
<user username=tomcat password=s3cret roles=manager-gui/>
</tomcat-users> # 此行是結(jié)尾不必寫
[root@tomcat /]# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
<Context antiResourceLocking=false privileged=true >
<Valve className=org.apache.catalina.valves.RemoteAddrValve
allow=192.168.171.134|192.168.171.1|127\\\\.\\\\d \\\\.\\\\d \\\\.\\\\d |::1|0:0:0:0:0:0:0:1 />
#在上面“allow=”后添加允許訪問的IP,以管道符“ | ”為分割
<Manager sessionAttributeValueClassNameFilter=java\\\\.lang\\\\.(?:Boolean|Integer|Long|Number|String)|org\\\\.apache\\\\.catalina\\\\.filters\\\\.CsrfPreventionFilter\\\\$LruCache(?:\\\\$1)?|java\\\\.util\\\\.(?:Linked)?HashMap/>
</Context>
[root@tomcat /]# /usr/local/tomcat/bin/shutdown.sh
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh
客戶端驗證:
重新點擊,即可提示輸入密碼:
4、下拉頁面,可以通過war包添加自定義的目錄:
準備war包
[root@tomcat test]# cat index.jsp
test
test
test
test
test
test
...................
[root@tomcat test]# jar -cvf test.war index.jsp
added manifest
adding: index.jsp(in = 80) (out= 10)(deflated 87%)
在web圖形界面,添加war包:
客戶端可以訪問TomcatIP 8080端口 /test進行訪問測試,其內(nèi)容就是我們做的war包中的內(nèi)容,如下:
九、開啟host-mangent管理頁面
[root@tomcat /]# vim /usr/local/tomcat/conf/tomcat-users.xml
.......... // 在末尾處添加如下兩行
<role rolename=admin-gui/>
<user username=zyz password=123.com roles=admin-gui/>
</tomcat-users>
[root@tomcat /]# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
<Context antiResourceLocking=false privileged=true >
<Valve className=org.apache.catalina.valves.RemoteAddrValve
allow=192.168.171.134|192.168.171.1|127\\\\.\\\\d \\\\.\\\\d \\\\.\\\\d |::1|0:0:0:0:0:0:0:1 />
在allow后添加允許的IP,以“|”分隔開
<Manager sessionAttributeValueClassNameFilter=java\\\\.lang\\\\.(?:Boolean|Integer|Long|Number|String)|org\\\\.apache\\\\.catalina\\\\.filters\\\\.CsrfPreventionFilter\\\\$LruCache(?:\\\\$1)?|java\\\\.util\\\\.(?:Linked)?HashMap/>
</Context>
客戶端驗證:
十、Tomcat的運行日志切割
cronolog是一個第三方的日志切割工具,比較方便快捷,是日志切割的一大利器。這里就使用這個第三方工具。
[root@tomcat tomcat]# tar zxf cronolog-1.6.2.tar.gz # 解包
[root@tomcat tomcat]# cd cronolog-1.6.2/
[root@tomcat cronolog-1.6.2]# ./configure && make && make install # 編譯并安裝
[root@tomcat cronolog-1.6.2]# which cronolog # 確保可以查到cronolog這個命令
/usr/local/sbin/cronolog
[root@tomcat cronolog-1.6.2]# vim /usr/local/tomcat/bin/catalina.sh # 編輯此文件
搜索touch 并注釋掉:# touch $CATALINA_OUT
跳轉(zhuǎn)到470行左右修改
org.apache.catalina.startup.Bootstrap $@ start 2>&1 | /usr/local/sbin/cronolog /usr/local/tomcat/logs/test.%Y-%m-%d.out >> /dev/null &
注釋掉:# >> $CATALINA_OUT 2>&1 &
[root@tomcat cronolog-1.6.2]# /usr/local/tomcat/bin/shutdown.sh # 重啟驗證
[root@tomcat cronolog-1.6.2]# /usr/local/tomcat/bin/startup.sh
[root@tomcat logs]# ls # 確保有test.2020-01-12.out
catalina.2020-01-12.log localhost.2020-01-12.log test.2020-01-12.out
catalina.out localhost_access_log.2020-01-12.txt
host-manager.2020-01-12.log manager.2020-01-12.log
十一、定義Tomcat 404錯誤返回的頁面
默認情況,客戶端訪問Tomcat服務(wù)器上一個不存在的目錄時,會提示404錯誤,而且會將我們Tomcat的版本信息等顯示出來,這是我們比較忌諱的,默認的404返回的錯誤頁面如下:
解決辦法就是,將404狀態(tài)碼進行重定向,以便我們自定義返回的頁面信息,如下:
[root@tomcat logs]# cat /usr/local/tomcat/webapps/ROOT/error.jsp
Access Error...
[root@tomcat logs]# vim /usr/local/tomcat/conf/web.xml
version=3.1> # 在22行附近添加如下內(nèi)容
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
[root@tomcat /]# /usr/local/tomcat/bin/shutdown.sh # 重啟驗證
[root@tomcat /]# /usr/local/tomcat/bin/startup.sh
再次訪問一個不存在的頁面進行驗證:
十二、Tomcat的內(nèi)存優(yōu)化
[root@tomcat ~]# vim /usr/local/tomcat/bin/catalina.sh #編輯此文件
#!/bin/sh #在第一行下面添加以下內(nèi)容
JAVA_OPTS=-Dfile.encoding=UTF-8
-server
-Xms1023M
-Xmx1024M
-XX:NewSize=512M
-XX:MaxNewSize=1020M
-XX:NewRatio=2
-XX:ParallelGCThreads=15
-XX: DisableExplicitGC
#添加完成后,保存退出后,重啟Tomcat后,即可生效,
#可以通過之前的實時監(jiān)控JVM虛擬機資源使用進行查看驗證
#若是在Tomcat 8.0之前的版本,還可以在上面添加以下兩個配置項,8.0以后的版本就被移除了:
#-XX:PermSize=256M
#-XX:MaxPermSize=356M
添加的各個配置項解釋如下:
-Xms:表示 JVM初始內(nèi)存大小,也可以說是Java 初始化堆的大小,-Xms 與-Xmx 設(shè)成一樣的值,避免 JVM 反復(fù)重新申請內(nèi)存,導(dǎo)致性能大起大落,默認值為物理內(nèi)存的 1/64
-Xmx:表示最大 Java 堆大小,當應(yīng)用程序需要的內(nèi)存超出堆的最大值時虛擬機就會提示內(nèi)存溢出,并且導(dǎo)致應(yīng)用服務(wù)崩潰,因此一般建議堆的最大值設(shè)置為可用內(nèi)存的最大值的80%%u3002
-Xmn:設(shè)置JVM最小內(nèi)存(128-256就夠了,一般不設(shè)置)
-XX:NewSize:設(shè)置新生代內(nèi)存大小。 新生代,對象新創(chuàng)建的時候分配的內(nèi)存空間,老生代在垃圾回收器回收過后該對象依然沒有被回收,該對象就會移動到老生代
-XX:PermSize:設(shè)置持久代內(nèi)存大小,用于存放靜態(tài)文件,如今Java類、方法等。持久代對垃圾回收沒有顯著影響,但是有些應(yīng)
用可能動態(tài)生成或者調(diào)用一些class,持久帶也稱為方法區(qū),方法區(qū)存儲每一個java類的結(jié)構(gòu)信息:比如運行時常量池,字段和方法數(shù)據(jù),構(gòu)造函數(shù)和普通方法的字節(jié)碼內(nèi)容以及類、實例、接口初始化時需要使用到的特殊方法等數(shù)據(jù),JDK8中已經(jīng)把持久代(PermGen Space) 干掉了,取而代之的元空間(Metaspace)。Metaspace占用的是本地內(nèi)存,不再占用虛擬機內(nèi)存。
-XX:MaxPermSize:設(shè)置最大值持久代內(nèi)存大小,永久代不屬于堆內(nèi)存,堆內(nèi)存只包含新生代和老年代
-XX:NewRatio:改變新舊空間的比例,意思是新空間的尺寸是舊空間的1/8(默認為8)
-XX:ParallelGCThreads 可用來增加并行度,需要多cpu
-XX: DisableExplicitGC:關(guān)閉System.gc(),簡單理解就是關(guān)閉java中的內(nèi)存回收機制
十三、Tomcat線程池的優(yōu)化
[root@tomcat /]# vim /usr/local/tomcat/conf/server.xml # 編輯zh主配置文件
<Service name=Catalina> # 在53行下面添加如下內(nèi)容
<Executor name=tomcatThreadPool namePrefix=catalina-exec- maxThreads=500 minSpareThread=4/>
<Connector port=8080 protocol=HTTP/1.1 # 在69行下面添加如下內(nèi)容
executor=tomcatThreadPool
上述Excutor重要參數(shù)說明:
name:共享線程池的名字,這是connector為了共享線程池要引用的名字,該名稱必須唯一
namePrefix:在JVM上,每運行線程都可以有一個name字符串,這一屬性為線程池中每個線程的name字符串設(shè)置了一個前綴,Tomcat將把線程號追加到這一前綴后面,默認值為tomcat-exec-
maxThreads:該線程池可以容納的最大線程數(shù),默認200
minSpareThreads:Tomcat應(yīng)該始終打開的最小不活躍線程數(shù),默認25
Connector參數(shù)說明
executor:表示使用參數(shù)值對應(yīng)的線程池。
十四、修改Tomcat服務(wù)的請求方式
Tomcat支持的三種請求方式:BIO、NIO、APR。
BIO:阻塞式I/O操作,Tomcat7以下版本默認情況下是以bio模式運行的,每個請求都要創(chuàng)建一個線程來處理,線程開銷比較大,不適用高并發(fā)的場景,性能也最低;
NIO:基于緩沖區(qū),能提供非阻塞I/O操作,和傳統(tǒng)的BIO相比,具備更好的并發(fā)性能
APR(Apache portable run-time libraries):簡單理解,就是從操作系統(tǒng)級別解決異步IO問題,大幅度的提高服務(wù)器的處理和相應(yīng)性能,也是Tomcat運行高并發(fā)的首選模式
APR提供的主要功能模塊包括:內(nèi)存分配及內(nèi)存池、原子操作、文件I/O、鎖、內(nèi)存映射、哈希表、網(wǎng)絡(luò)I/O、輪詢、進程及線程操作等等,通過采用APR,Tomcat可以獲得高度可擴展性以及優(yōu)越的性能,并且可以更好的與本地服務(wù)器技術(shù)集成,從而可以使Tomcat作為一款通用的Web服務(wù)器使用,而不僅僅作為輕量級應(yīng)用服務(wù)器。在這種情況下,Java將不再是一門側(cè)重于后端的編程語言,也可以更多的用于成熟的Web服務(wù)器平臺。
1、更改其請求方式為NIO(注意:Tomcat8以上版本,默認使用的就是NIO模式,不需要額外修改 )
[root@tomcat /]# vim /usr/local/tomcat/conf/server.xml # 編輯zh主配置文件
<Connector port=8080 protocol=org.apache.coyote.http11.Http11NioProtocol # 修改為nio
executor=tomcatThreadPool
connectionTimeout=20000
redirectPort=8443 />
重啟后,查看其“catalina.out”日志,有以下字樣,則表示是在nio接收請求處理方式,如下(我這里在上面對catalina.out進行了日志切割,所以需要查看切割后的日志文件):
2、更改其請求方式為APR模式
啟用這種模式稍微麻煩一些,需要安裝一些依賴庫,下面是基于centos 7.3環(huán)境的Tomcat/8.5.35進行配置。
安裝apr動態(tài)庫:
[root@tomcat /]# yum -y install apr-devel openssl-devel gcc make
[root@tomcat /]# cd /usr/local/tomcat/bin/
[root@tomcat bin]# tar zxf tomcat-native.tar.gz
[root@tomcat bin]# cd tomcat-native-1.2.18-src/native/
[root@tomcat native]# ./configure && make && make install
#編譯安裝完成后,apr動態(tài)庫默認安裝在/usr/local/apr/lib目錄下。
配置APR本地庫到系統(tǒng)共享庫搜索路徑中:
設(shè)置LD_LIBRARY_PATH和LD_RUN_PATH環(huán)境變量,指向/usr/local/apr/lib目錄,可配置到/etc/profile文件中。如下:
[root@tomcat native]# vim /etc/profile #編輯全局變量,在文件末尾寫入以下兩行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib
export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib
[root@tomcat native]# . /etc/profile #重新加載環(huán)境變量
#重啟驗證
[root@tomcat ~]# /usr/local/tomcat/bin/shutdown.sh
[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
[root@tomcat native]# vim /usr/local/tomcat/conf/server.xml
<Connector port=8080 protocol=org.apache.coyote.http11.Http11AprProtocol # xiugai修改為apr
executor=tomcatThreadPool
connectionTimeout=20000
redirectPort=8443 />
更多關(guān)于云服務(wù)器,域名注冊,虛擬主機的問題,請訪問三五互聯(lián)官網(wǎng):m.shinetop.cn