在CentOS 7 下用systemctl控制Tomcat 8.5

CentOS系統(tǒng)自帶的軟件版本比較陳舊,比如Tomcat官方有已經(jīng)更新到了Tomcat 9,內(nèi)置的還是Tomcat 7。使用起來十分不便,最近因?yàn)轫?xiàng)目需求,下載安裝了Tomcat 8,特把過程記錄如后。

1、安裝Java開發(fā)運(yùn)行環(huán)境

CentOS 7軟件倉(cāng)庫(kù)中內(nèi)置有Java 1.7、1.8,我們可以直接通過yum指令安裝。

1.1 安裝

# 安裝Java 1.8運(yùn)行環(huán)境
sudo yum install java-1.8.0-openjdk

1.2 查看Java版本

java -version

1.3 配置Java環(huán)境變量

編輯/etc/profile文件:

sudo vi /etc/profile

在文件的最后加入以下幾行,用來設(shè)置JAVA_HOME、CLASS_PATH和PATH環(huán)境變量:

 export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64/
 export CLASS_PATH=$JAVA_HOME/lib
 export PATH=$PATH:$JAVA_HOME/bin

2、安裝Tomcat

2.1 下載Tomcat 8.5.34

通過wget指令,下載Tomcat 8.5.34:

wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.34/bin/apache-tomcat-8.5.34.tar.gz

2.2 解壓縮

tar -zxvf apache-tomcat-8.5.34.tar.gz
mv apache-tomcat-8.5.34 /opt/

2.3 配置Tomcat運(yùn)行參數(shù)

在tomcat/bin目錄下,新建setenv.sh文件,內(nèi)容如下:

 # Set Catalina Base
 export CATALINA_BASE=/opt/apache-tomcat-8.5.34/

 # Set Tomcat Pid file
 CATALINA_PID="$CATALINA_BASE/tomcat.pid"

 # Set JAVA Options
 JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms1024M -Xmx2048M -XX:MaxNewSize=256m"

2.4 創(chuàng)建Tomcat用戶并授權(quán)

getent group tomcat || groupadd -r tomcat
getent passwd tomcat || useradd -r -d /opt -s /bin/nologin -g tomcat tomcat
chown -R tomcat:tomcat /opt/apache-tomcat-8.5.34

2.5 配置Tomcat

在/usr/lib/systemd目錄下,新建一個(gè)tomcat.service:

vi /usr/lib/systemd/system/tomcat8.service

內(nèi)容如下(注意把下面的/opt/apache-tomcat-8.5.34/路徑修改為你的Tomcat實(shí)際安裝路徑):

 [Unit]
 Description=Apache Tomcat 8
 After=syslog.target network.target

 [Service]
 Type=forking
 PIDFile=/opt/apache-tomcat-8.5.34/bin/tomcat.pid
 ExecStart=/opt/apache-tomcat-8.5.34/bin/startup.sh
 ExecReload=/bin/kill -s HUP $MAINPID
 ExecStop=/bin/kill -s QUIT $MAINPID
 PrivateTmp=true
 User=tomcat
 Group=tomcat

 [Install]
 WantedBy=multi-user.target

2.6 啟用、啟動(dòng)Tomcat服務(wù)器

systemctl enable tomcat8   # 啟用Tomcat8服務(wù)
systemctl start tomcat8    # 啟動(dòng)Tomcat8服務(wù)

2.7 打開防火墻

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

3、其他幾個(gè)小問題

手工下載、解壓縮、配置安裝的Tomcat,會(huì)碰到幾個(gè)小問題。雖然解決起來不算麻煩,但還是記錄下來,方便參考。

3.1 APR 問題

Tomcat啟動(dòng)時(shí)提示找不到APR:

info [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent The APR based Apache Tomcat Native library which allows optimal performance in      production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]

主要是缺少APR、tomcat-native,安裝上就可以了:

sudo yum install apr apr-util tomcat-native

另外,APR即時(shí)安裝了,還是沒有啟用的。你看看Tomcat的啟動(dòng)日志catalina.out,如果里面有http-nio-8080表示使用的還是NIO模式。我們還需要修改Tomcat安裝目錄的conf/server.xml文件。

將默認(rèn)值:

<Connector port="8080" protocol="HTTP/1.1"
 connectionTimeout="20000"
 redirectPort="8443" />

修改為:

<Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
 connectionTimeout="20000"
 redirectPort="8443" />

將默認(rèn)值:

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

修改為:

<Connector port="8009" protocol="org.apache.coyote.ajp.AjpAprProtocol" redirectPort="8443" />

3.2 啟動(dòng)特別慢問題

Tomcat啟動(dòng)的特別慢,需要60多秒,看了下日志信息,發(fā)現(xiàn)有如下提示:

22-Sep-2018 14:48:28.359 WARNING [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom Creation of SecureRandom instance for session ID          generation using [SHA1PRNG] took [56,009] milliseconds.

主要是tomcat的session id的生成慢了(通過java.security.SecureRandom生成隨機(jī)數(shù)來實(shí)現(xiàn)),在setenv.sh文件中加入以下參數(shù),問題解決:

 # 使用file:/dev/./urandom, 加快啟動(dòng)速度
 export JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/./urandom"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本來這篇文章是作為自己私有記錄的,所以也沒有MarkDown(主要是不怎么寫博客,也不熟悉)。稍微修改一下就發(fā)上來...
    v587的毅哥閱讀 3,375評(píng)論 0 22
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,616評(píng)論 19 139
  • 1 目錄結(jié)構(gòu) /bin:腳本文件目錄。 /common/lib:存放所有web項(xiàng)目都可以訪問的公共jar包(使用C...
    SkTj閱讀 3,851評(píng)論 0 3
  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新。 轉(zhuǎn)原文聲明: 原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時(shí)請(qǐng)務(wù)必以超鏈接形式標(biāo)明文章 原始出處 ...
    LUNJINGJIE閱讀 4,106評(píng)論 1 33
  • 盈透證券指數(shù)產(chǎn)品列表 2018-8-28 18:31:26列表參考地址 納斯達(dá)克指數(shù) QQQ - 納斯達(dá)克100指...
    無常閱讀 2,951評(píng)論 0 1

友情鏈接更多精彩內(nèi)容