1. 程式人生 > >linux centos7安裝tomcat7以及遇到坑的解決辦法

linux centos7安裝tomcat7以及遇到坑的解決辦法

前言:最近買了一個阿里雲伺服器準備安裝tomcat做web容器,之前安裝tomcat是so easy的事情,這次安裝卻遇到了很多個坑,再次總結一下,避免以後自己再出現同樣的錯誤。

一、安裝tomcat

1 下載tomcat

2 安裝tomcat

安裝好jdk後,同時也下載好tomcat安裝包,使用ftp功能將安裝包放入指定的目錄下,例如:/usr/local

(1)進入目錄

cd /usr/local

(2)建立目錄

mkdir tomcat

(3)檢視目錄

ll 或 ls

(4)解壓tomcat安裝包

tar -zxvf apache-tomcat-7.0.68.tar.gz

(5)刪除tomcat安裝包(如果需要)

rm -rf apache-tomcat-7.0.68.tar.gz

(6)修改檔名(解壓後的檔名過長,可以考慮修改短)

mv  apache-tomcat-7.0.68 tomcat7

(7)進入tomcat的目錄(根據自己的安裝目錄來)

cd /usr/local/tomcat/tomcat7

這裡寫圖片描述

3 執行tomcat

(1)進入tomcat執行目錄

cd /usr/local/tomcat/tomcat7/bin

(2)檢視tomcat的執行狀態

ps -ef |grep tomcat
  • 1

(3)啟動tomcat

./startup.sh

這裡寫圖片描述

執行tomcat started,tomcat執行成功

(4)關閉tomcat

./shutdown.sh

這裡寫圖片描述

(5)訪問伺服器ip地址這裡寫圖片描述

二、解決tomcat執行遇到的問題

1 伺服器防火牆攔截

問題描述:當tomcat啟動成功後,訪問web伺服器,請求失敗。導致失敗的原因之一可能就是防火牆將8080埠或者其他埠攔截掉了,我們需要重新開放8080或者其他埠,不建議關閉防火牆。

(1)檢視防火牆狀態

service iptables status

(2)新增8080埠允許外網訪問

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

(3)儲存規則設定

service iptables save

(4)重啟防火牆

service iptables restart

2 啟動tomcat很慢

問題描述:啟動tomcat會用幾分鐘甚至十幾分鐘的時間,這就說明tomcat啟動被某種機制卡住了,後來查資料說是通過隨機數生成祕鑰的時候卡住了,導致Tomcat啟動慢或失敗。因為在tomcat8中,Tomcat的Session ID通過SHA1演算法計算得到的,計算Session ID的時候必須有1個祕鑰,為了提高安全性Tomcat在啟動的時候通過隨機數生成祕鑰。但是我的版本是tomcat7.0.68,也遇到了類似的問題。解決辦法就是增大熵池(影響隨機數的強度的是生成用的熵)。

(1)解決辦法一:使用rngd 軟體增大熵池(推薦)

需要cpu支援 (可不執行)

grep  rdrand /proc/cpuinfo

安裝rngd服務(熵服務,增大熵池)

yum install rng-tools

啟動服務

systemctl start rngd

(2)java環境下修改配置檔案

vim $JAVA_HOME/jre/lib/security/java.security 
securerandom.source=file:/dev/random
改為 
securerandom.source=file:/dev/urandom

這裡寫圖片描述

(3)可以通過配置JRE使用非阻塞的Entropy Source(未驗證)

vim $TOMCAT_HOME/bin/catalina.sh 
if [[ "$JAVA_OPTS" !=*-Djava.security.egd=* ]]; then
  JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
fi

這個系統屬性egd表示熵收集守護程序(entropy gathering daemon)

總結: tomcat啟動慢可能我們開始不會注意到,我們測試的時候開啟tomcat正常,關閉tomcat的時候出錯,說明程序未關閉(預設8005程序),我們通常會使用kill -9 程序號殺掉程序。如果經常出現tomcat關閉異常這個問題,可能就是我們tomcat啟動過慢導致的。

3 tomcat防火牆和啟動正常,無法訪問tomcat

問題描述:這個是我遇到最大的坑,防火牆正常,tomcat啟動正常,但是就是一直無法訪問。因為我使用的是阿里雲的伺服器,我設定了安全組,導致從阿里雲伺服器一直攔截我的埠,這裡就要重新設定你的安全組規則。重新設定安全組,開放8080或其他埠即可正常訪問。

阿里雲新增安全組規則文件新增安全組規則

--------------------- 本文來自 天才小小布 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/w410589502/article/details/77988912?utm_source=copy