天天看點

Linux Tomcat JSP 布署詳細教程AJP連接配接方式自動解壓war包 自動布署 (生産建議關閉自動布署)

Linux Tomcat JSP動态網頁解析 v7.0 ★★★

1 Tomcat 概述

Tomcat是由Apache軟體基金會下屬的Jakarta項目開發的一個Servlet容器,按照Sun Microsystems提供的技術規範,實作了對Servlet和JavaServer Page(JSP)的支援,Tomcat本身也是一個HTTP伺服器,可以單獨使用,apache是一個以C語言編寫的HTTP伺服器。Tomcat主要用來解析JSP語言。目前最新版本為8.0。

常見版本:5.5x 6.0x 7.0x

官網: Apache.tomcat.org

2 Tomcat JDK

JDK: java開發工具包,包含 JRE、javac 、javaw工具

JRE:java運作環境,在JDK包中

SDK:輔助開發工具, java開發的套件

針對不同使用的類庫

J2EE: 企業應用

J2SE: 标準

J2ME: 手機

3 Tomcat 安裝

安裝tomcat之前需要安裝jdk (Java Development Kit) 是 Java 語言的軟體開發工具包(SDK)),這裡選擇jdk-6u18-linux-x64-rpm.bin,bin檔案安裝跟sh檔案方法一樣,sh ./ jdk-6u18-linux-x64-rpm.bin,回車即可,預設安裝到/usr/java/jdk1.6.0_18目錄下。

 jdk下載下傳位址:

 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

 http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.rpm

http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1480477540_8dd19bbd8e9b40171c9830eba9d480a6

配置JDK環境變量

配置java環境變量,vi /etc/profile 添加如下語句:

export JAVA_HOME=/usr/local/jdk1.8

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin

source /etc/profile //使環境變量立刻生效。

java -version //檢視java版本,顯示版本為1.6.0_18,證明安裝成功。

 tomcat下載下傳位址:

http://tomcat.apache.org

wget –c http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.39/bin/apache-tomcat-8.0.39.tar.gz

在官網下載下傳tomcat相應版本,下載下傳完後解壓:

tar -xzf apache-tomcat-6.0.30.tar.gz

;mv apache-tomcat-8.0.39 /usr/local/tomcat即可。

啟動tomcat,指令為:/usr/local/tomcat/bin/startup.sh

檢視ps -ef |grep tomcat 程序及端口是否存在,

通過頁面通路可以看到tomcat預設測試頁面:

生成連結以便版本更新

ln -s apache-tomcat-7.0.54 server

ln -s jdk1.7.0_55 latest

ln -s latest default

4 Tomcat 配置檔案詳解

<Server>................................Server層

<Service>............................Service層

<Connector/>

<Engine>..........................Engine層

<Host>.........................Host層

<Context/>...............Context層

</Host>

</Engine>

</Service>

<Server>

Server層

對應Server元件,表示整個Tomcat(Catalina Servlet容器),它處于Tomcat頂層,可以包含一個或多個Service層。

對應Service元件,是Server層中的一個邏輯功能層,包含一個Engine層,以及一個或多個Connector,Service元件将一個或多個Connector元件綁定到Engine層上,Connector元件偵聽端口,獲得使用者請求,并将請求轉發到Engine層處理,同時把處理結果轉發給使用者,進而實作一個特定的功能。

Engine層

對應Engine元件,負責請求分發處理,可以連接配接多個Connector,它從Connector接收請求後,解析出可以完成使用者請求的URL,根據URL可以把請求比對到正确的Host上,當Host處理完使用者請求後,Engine層把結果傳回給适合連接配接器,再由連接配接器傳輸給使用者。

Host層

對應Host元件,表示一個虛拟主機,一個Engine層可以包含多個Host層,每個Host層可以包含一個或多個Context層,對應不同的web應用。

Context層

對應Context元件,代表某個虛拟主機上的實際目錄或一個WAR,即單個Web應用程式,它運作在特定的虛拟主機中,使用最為頻繁。一個Host層包含多個Context層,每一個Context都有唯一的路徑,Host層接到請求後,根據使用者請求的URL,将請求定位到Context層。

元素名 屬性 解釋

server port 指定一個端口,這個端口負責監聽關閉tomcat 的請求

shutdown 指定向端口發送的指令字元串

service name 指定service 的名字

Connector ( 表示用戶端和service之間的連接配接) port 指定伺服器端要建立的端口号,并在這個斷口監聽來自用戶端的請求

minProcessors 伺服器啟動時建立的處理請求的線程數

maxProcessors 最大可以建立的處理請求的線程數

enableLookups 如果為true ,則可以通過調用request.getRemoteHost() 進行DNS 查詢來得到遠端用戶端的實際主機名,若為false 則不進行DNS 查詢,而是傳回其ip 位址

redirectPort 指定伺服器正在處理http 請求時收到了一個SSL 傳輸請求後重定向的端口号

acceptCount 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求将不予處理

connectionTimeout 指定逾時的時間數( 以毫秒為機關)

Engine ( 表示指定service 中的請求處理機,接收和處理來自Connector的請求) defaultHost 指定預設的處理請求的主機名,它至少與其中的一個host 元素的name 屬性值是一樣的

Context ( 表示一個web 應用程式,通常為WAR 檔案,關于WAR 的具體資訊見servlet 規範) docBase 應用程式的路徑或者是WAR 檔案存放的路徑

path 表示此web 應用程式的url 的字首,這樣請求的url為http://localhost:8080/path/ ****

host ( 表示一個虛拟主機 ) name 指定主機名

appBase 應用程式基本目錄,即存放應用程式的目錄

unpackWARs 如果為true ,則tomcat 會自動将WAR 檔案解壓,否則不解壓,直接從WAR 檔案中運作應用程式

Logger ( 表示日志,調試和錯誤資訊) className 指定logger 使用的類名,此類必須實作org.apache.catalina.Logger 接口

prefix 指定log 檔案的字首

suffix 指定log 檔案的字尾

timestamp 如果為true ,則log 檔案名中要加入時間,如下例:localhost_log.2001-10-04.txt

Realm ( 表示存放使用者名,密碼及role的資料庫) className 指定Realm 使用的類名,此類必須實作org.apache.catalina.Realm 接口

Valve ( 功能與Logger 差不多,其prefix 和suffix 屬性解釋和Logger 中的一樣) className 指定Valve 使用的類名,如用org.apache.catalina.valves.AccessLogValve 類可以記錄應用程式的通路資訊

directory 指定log 檔案存放的位置

pattern 有兩個值,common 方式記錄遠端主機名或ip 位址,使用者名,日期,第一行請求的字元串,HTTP 響應代碼,發送的位元組數。combined 方式比common 方式記錄的值更多

<?xml version='1.0' encoding='utf-8'?>

<Server port="8005" shutdown="SHUTDOWN">

<Listener className="org.apache.catalina.startup.VersionLoggerListener" />

<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />

<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">

<Connector port="8080" protocol="HTTP/1.1" # HTTP連接配接方式

connectionTimeout="20000"

redirectPort="8443" /> # 重定向8443

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"

maxThreads="150" SSLEnabled="true" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" />

->

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

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

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

<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.authenticator.SingleSignOn" />

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"

prefix="localhost_access_log" suffix=".txt"

pattern="%h %l %u %t "%r" %s %b" />

</Server>

注意:tomcat的配置檔案中的注釋内容不能使用#号,而要使用<!-- xxxxxx -->

5 Tomcat 定義釋出目錄

預設釋出目錄: /usr/local/tomcat/webapps/ROOT

【注】:修改釋出目錄時,要把源webapps/目錄下所有檔案rm –rf *,否則tomcat預設去找原目錄

Vi /usr/local/tomcat/conf/server.xml

修改程式部署路徑:

方法1:

<Host name="localhost" appBase="E:\www\javapms" unpackWARs="true" autoDeploy="true">

appBase="E:\www\javapms" 設定程式部署路徑,

在server.xml尾部的</Host>前面插入下面一行參數。

方法2:<Context path="/" docBase="/data/webapps/www" reloadable="true"/>

</Host> #此處插入

path:浏覽器通路時的路徑名

docBase:web項目的WebRoot所在的路徑,注意是WebRoot的路徑,不是項目的路徑。其實也就是編譯後的項目

reloadble:設定項目有改動時,tomcat是否重新加載該項目

測試網頁index.jsp

<html>

<body>

tomcat jsp test page

<%=new java.util.Date()%>

</body>

</html>

6 Tomcat 服務與端口

【注意】:生産環境中,tomcat有二個工作目錄,

[root@tomcat01 tomcat8]# ll

rw-r--r--. 1 root root 16195 11月 9 2016 RUNNING.txt

drwxr-xr-x. 4 root root 4096 11月 30 08:51 temp

drwxr-xr-x. 7 root root 4096 11月 29 08:53 webapps

drwxr-xr-x. 3 root root 21 11月 14 23:22 work

此工作目錄發産生一些臨時檔案,建議在重新開機tomcat的時候,手動清空這二個檔案夾。

6.1 啟動和關閉

常用java解析器: tomcat resin jboss weblogic websphere

生産使用環境:tomcat6.0

生産管理環境:

chown -R tomcat.tomcat /usr/local/jdk/

chown -R tomcat.tomcat /usr/local/tomcat

su - tomcat 切換到tomcat使用者下執行啟動tomcat

停止

PID =$(ps -ef |grep java |grep -v "grep"|awk '{print $2}') # 通過shell取java的PID

Kill -9 PID

/usr/local/tomcat8/bin/shutdown.sh

啟動

/usr/local/tomcat8/bin/startup.sh

6.2 預設端口:8005 8080 8009

關管端口 shutdown.sh的控制端口

通路端口 http連接配接端口

代理端口

6.3 防火牆配置:

打開防火牆,使外部能通路

/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

service iptables save

service iptables restart

或直接修改檔案/etc/sysconfig/iptables.

vi /etc/sysconfig/iptables

A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT

在浏覽器輸入: http://192.168.16.133:8080

如在本機可以輸入: http://localhost:8080

出現tomcat的頁面表示安裝成功.

6.4 jsp測試頁:

vim /usr/local/tomcat8/webapps/ROOT/index.jsp

<center>Now time is: <%=new java.util.Date()%></center>

7 Tomcat 管理 程序腳本

/usr/local/tomcat/webapps/ROOT 釋出目錄 tomcat

如果啟動多個tomcat服務,需要修改 800

8080 8009端口, 複制一次tomcat目錄

Tomcat守護程序腳本

!/bin/bash

usage(){

echo "USAGE: start | stop | status"

}

define PID

tomcat_pid=<code>ps -ef |grep tomcat | grep -v "grep" |awk '{print $2}'</code>

TOMCAT_PATH=/usr/local/tomcat/

start(){

status(){

ps -ef |grep tomcat | grep -v "grep"

stop(){

kill -9 $tomcat_pid

sleep 5

rm temp/ -rf

rm work/ -rf

if [ -z $TOMCAT_STATUS ];then

echo "tomcat stop"

else

fi

MAIN(){

case $1 in

start)

start

;;

stop)

stop

status)

status

*)

usage

esac

MAIN $1

8 Tomcat 安全管理配置規範

8.1 管理端口保護8005

tcp6 0 0 127.0.0.1:8005 :::* LISTEN 35830/java

[root@apache01 webapps]# telnet 127.0.0.1 8005

Trying 127.0.0.1...

Connected to 127.0.0.1.

Escape character is '^]'.

SHUTDOWN

能過telnet指令連接配接到8005端口,可以執行SHUTDOWN指令關閉tomcat

優化方案:

修改預設的8005端口,修改shutdown指定字元串

将端口修改成随機端口,将關閉指令修改成任意字元

8.2 ajp連接配接端口8009

修改預設的8009端口,通過Iptables控制ajp端口通路

8.3 禁用管理端

删除tomcat/目錄的一些host-manager docs examples 或者将tomcat的目錄設定為

tomcat以外的目錄

對于前端web子產品,tomcat管理端屬于tomcat高危安全隐患,一旦被攻破,×××通過上

傳web shell的方式将會直接取得伺服器的控制

8.4 降級啟動

8.5 檔案清單通路控制

conf/web.xml檔案中default部分listings的配置必須為false;

false為不列出目錄檔案,true為允許,預設false

&lt;init-param&gt;

&lt;param-name&gt;listings&lt;/param-name&gt;

&lt;param-value&gt;false&lt;/param-value&gt;

&lt;/init-param&gt;

8.6 版本資訊隐藏

8.7 server header重寫

在HTTP Connector配置中加入server的配置

server="webserver"

當tomcat HTTP端口直接提供web服務時,此配置生效,加入此配置,将會替換http響

應server header部分的預設配置,預設是Apache-Coyote/1.1

示例:

[root@tomcat01 conf]# curl --head 127.0.0.1:8080

HTTP/1.1 403 Forbidden

Server: Apache-Coyote/1.1

Cache-Control: private

Expires: Thu, 01 Jan 1970 08:00:00 CST

Content-Type: text/html

Content-Length: 559

Date: Sun, 31 Dec 2017 14:28:10 GMT

redirectPort="8443" server="nginx1.1"/&gt;

8.8 通路限制

8.9 起停腳本權限回收

去除其他使用者對tomcat的bin目錄下的shutdown.sh startup.sh catalina.sh的執行權限

chmod -R 744 tomcat/bin/*

8.10 通路日志格式規範

開啟tomcat預設通路日志中的referer和User-Agent記錄,是為了一旦出現安全問題能夠更好的根據

日志進行問題排查

prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t %r %b %{Referer}i %{User-Agent}i $D" resolveHosts="false" /&gt;

9 Tomcat的狀态管理和host管理

/usr/local/tomcat8/webapps/manager

vim /usr/local/tomcat8/conf/tomcat-users.xml

在最後&lt;/tomcat-users&gt;段前添加的内容如下:

&lt;role rolename="admin-gui"/&gt;

&lt;user username="tomcat" password="s3cret" roles="admin-gui"/&gt;

http://10.204.3.6:8080/manager

10 Tomcat 多執行個體

11 Tomcat 性能優化

11.1 硬體資源優化

比如記憶體,硬碟

11.2 架構上的優化

利用緩存和壓縮 在nginx前端

做動靜分離 緩解tomcat壓力

搭建叢集 采用nginx請求分流

11.3 JVM參數調優

優化檔案: /usr/local/tomcat/bin/catalina.sh

CATALINA_OPTS="

server

Xms6000M

Xmx6000M

Xss512k

XX:NewSize=2250M

XX:MaxNewSize=2250M

XX:PermSize=128M

XX:MaxPermSize=256M

XX:+AggressiveOpts

XX:+UseBiasedLocking

XX:+DisableExplicitGC

XX:+UseParNewGC

XX:+UseConcMarkSweepGC

XX:MaxTenuringThreshold=31

XX:+CMSParallelRemarkEnabled

XX:+UseCMSCompactAtFullCollection

XX:LargePageSizeInBytes=128m

XX:+UseFastAccessorMethods

XX:+UseCMSInitiatingOccupancyOnly

Duser.timezone=Asia/Shanghai

Djava.awt.headless=true"

參數的詳細配置,參考:http://blog.51cto.com/zhongliang/2101918

11.4 Tomcat 參數優化

這裡着重講解tomcat參數的優化:server.xml檔案,關閉DNS查詢、配置最大并發等參數。

maxThreads:tomcat起動的最大線程數,即同時處理的任務個數,預設值為200

acceptCount:當tomcat起動的線程數達到最大時,接受排隊的請求個數,預設值為100

當然這些值都不是越大越好,需要根據實際情況來設定。可以基于測試的基礎上來不斷的調優分析。

&lt;Connector port="8080"

protocol="org.apache.coyote.http11.Http11NioProtocol"

connectionTimeout="20000" 連接配接逾時

redirectPort="8443"

maxThreads="500" 最大線程 就是最大并發數

minSpareThreads="20" 最小空閑線程數

acceptCount="100" 隊列大小 等待處理的

disableUploadTimeout="true" 類似于Apache中的keeyalive一樣

enableLookups="false" 關閉DNS查詢

URIEncoding="UTF-8" /&gt;

maxSpareThreads : 最大空閑線程數

acceptCount是當線程數達到maxThreads後,後續請求會被放入一個等待隊列,這個acceptCount是這個隊列的大小,如果這個隊列也滿了,就直接refuse connection

壓縮

compression=”on” compressionMinSize=”2048″ compressableMimeType=”text/html,text/xml,text/javascript,text/css,text/plain”

11.5 外部調優

禁用DNS查詢

調整線程數(線程池)

maxThreads="600" 最大線程數

minSpareThreads="100" 初始化時建立的線程數

maxSpareThreads="500" 一旦建立的線程越過這個值,Tomcat就會關閉不再需要的socket線程

acceptCount="700" 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求将不予處理

11.6 java工具 監控和管理控制台

通過IP:端口連接配接到監控和JAVA控制台

在c:\ Program Files\jdk\bin\jvisualvm.exe

通過IP:端口連接配接 管理工具

catalina.sh中加入配置,放置在#!/bin/bash标簽下

vim /usr/local/tomcat8/bin/catalina.sh

CATALINA_OPTS="$CATALINA_OPTS

Djava.rmi.server.hostname=10.204.3.7

Dcom.sun.management.jmxremote

Dcom.sun.management.jmxremote.port=12345

Dcom.sun.management.jmxremote.authenticate=true

Dcom.sun.management.jmxremote.ssl=false

Dcom.sun.management.jmxremote.pwd.file=/usr/local/jdk1.7/jre/lib/management/jmxremote.password"

cd /usr/local/jdk1.7/jre/lib/management/

cp jmxremote.password.template jmxremote.password

vi jmxremote.password

zhongliang 123456 # 使用者名zhongliang 密碼249765270

chmod 600 jmxremote.password

輸入遠端主機:端口 10.204.3.7:12345

選擇檔案—》添加JMX..連接配接—》10.204.3.7:12345

CPU使用情況 堆,垃級回收 抽樣器

實時線程數

注意:在控制台上執行GC清理的時候,會出現前端斷連

12 Zabbix監控tomcat

zabbix編譯的時候,指定--enable-java

yum安裝的時候,yum install zabbix-java

13 Apache整合tomcat

下載下傳tomcat-connectors-1.2.42-src.tar.gz包

Wget -c https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz

tar xzvf tomcat-connectors-1.2.42-src.tar.gz

cd tomcat-connectors-1.2.42/native

./configure --with-apxs=/usr/local/apache2/bin/apxs

make

cp ./apache-2.0/mod_jk.so /usr/local/apache/modules/

配置。

在/usr/local/apache/conf/下面建立兩個配置檔案mod_jk.conf和workers.properties。

vi mod_jk.conf#######################

添加以下内容:

指出mod_jk子產品工作所需要的工作檔案workers.properties的位置

JkWorkersFile /usr/local/apache/conf/workers.properties

Where to put jk logs

JkLogFile /usr/local/apache/logs/mod_jk.log

Set the jk log level [debug/error/info]

JkLogLevel info

Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

JkOptions indicate to send SSL KEY SIZE,

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

将所有servlet 和jsp請求通過ajp13的協定送給Tomcat,讓Tomcat來處理

JkMount /servlet/ worker1

JkMount /.jsp worker1

vi workers.properties###########################

Defining a worker named worker1 and of type ajp13

worker.list=worker1

Set properties for worker1

worker.worker1.type=ajp13

worker.worker1.host=localhost

worker.worker1.port=8009

worker.worker1.lbfactor=50

worker.worker1.cachesize=10

worker.worker1.cache_timeout=600

worker.worker1.socket_keepalive=1

worker.worker1.socket_timeout=300

整合apache和tomcat

Vim httpd.conf#############

DirectoryIndex index.jsp index.html

添加index.jsp

LoadModule jk_module modules/mod_jk.so

加載mod_jk.so子產品

Include /usr/local/apache/conf/mod_jk.conf

引入配置檔案

将tomcat和apache的釋出目錄設定成一緻。建立站點檔案index.jsp

14 Nginx整合Tomcat 叢集

T_INSTALL_DIR=/usr/local/tomcat

Port=<code>export 8005+1</code>

複制多個tomcat到tomcat1 tomcat2 tomcat3

修改對應每個釋出目錄的端口

安裝nginx

tar zxvf nginx-1.7.8.tar.gz //解壓

cd nginx-1.7.8

./configure --with-http_stub_status_module --with-http_ssl_module//啟動server狀态頁和https子產品

make &amp;&amp; make install

修改nginx.conf配置檔案,添加一個location

location ~ .(jsp|do)$ {

index index.jsp;

proxy_pass http://192.168.74.129:8081; //來自jsp或者do的字尾的請求交給tomcat處理&lt;/span&gt;

proxy_redirect off;

proxy_set_header Host $host; //後端的Web伺服器可以通過X-Forwarded-For擷取使用者真實IP

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m; //允許用戶端請求的最大單檔案位元組數

client_body_buffer_size 128k; //緩沖區代理緩沖使用者端請求的最大位元組數

proxy_connect_timeout 90; //nginx跟後端伺服器連接配接逾時時間

proxy_read_timeout 90; //連接配接成功後,後端伺服器響應時間

proxy_buffer_size 4k; //設定代理伺服器(nginx)儲存使用者頭資訊的緩沖區大小

proxy_buffers 6 32k; //proxy_buffers緩沖區,網頁平均在32k以下的話,這樣設定

proxy_busy_buffers_size 64k;//高負荷下緩沖大小(proxy_buffers*2)

proxy_temp_file_write_size 64k; //設定緩存檔案夾大小,大于這個值,将從upstream伺服器傳

tomcat虛拟主機

tomcat 配置狀态資訊

tomcat配置錯誤頁面優雅顯示

tomcat配置管理頁面

tomcat 配置日志管理

15 Tomcat故障

日志檔案

/usr/local/tomcat/logs/catalina.out

【注】:tomcat查端口時正常,服務正常,但通路後,服務消失,

問題原因:因為配置檔案不正确,導緻報錯,服務自動停止

解決方法:檢查配置檔案

例如:配置檔案中沒有定義釋出目錄,但是釋出目錄中的ROOT已被删除,會導緻此類問題發生

15.1 cannot execute binary file

/usr/local/tomcat8/bin/catalina.sh: line 433: /usr/local/jdk1.8/bin/java: cannot execute binary file

[root@tomcat01 local]# java --version

bash: /usr/local/jdk1.8/bin/java: cannot execute binary file

原因:軟體版本與系統版本不一緻

15.2 insufficient free space available after evicting expired cache entries-consider increasing the maximum size of the cache.

tomcat部署jenkins啟動報錯:

insufficient free space available after evicting expired cache entries-consider increasing the maximum size of the cache.

解決該問題方法,修改tomcat/conf/context.xml檔案,增加資源最大可緩存的大小:

&lt;Resources

cachingAllowed="true"

cacheMaxSize="102400"

/&gt;

下一篇: PID教程

繼續閱讀