Linux雲服務器下Tomcat部署
- 以阿里雲下centos_7爲例
- 工具:
- 一臺安裝centos_7_06_64_20G_alibase_20190218.vhd的雲服務器(64位)
- 一臺安裝了MobaXterm工具的電腦
- MobaXterm:
- ssh遠程連接雲服務器的軟件
- 本地機與服務器文件互傳的軟件
步驟一、連接雲服務器
- 安裝MobaXterm
- 點擊Session 選擇SSH 輸入Remote host(服務器外網地址)
- OK、然後輸入用戶名密碼連接服務器
- 創建基礎目錄
/usr/local/environment/
-查看並進入environment
目錄
cd /usr/local/environment/
步驟二、安裝JDK
- 下載 jdk-8u201-linux-x64.tar.gz 文件
- 使用MobaXterm上傳至
environment
目錄下 - 解壓jdk-8u201-linux-x64.tar.gz
tar -zxvf jdk-8u201-linux-x64.tar.gz
- 修改名稱
mv jdk-8u201-linux-x64 jdk8
- 配置環境變量
- 打開/etc/目錄下的profile 文件:
vim /etc/profile
- 將如下代碼追加到 profile 文件末尾:
#jdk8 config start - 2019年9月13日 export JAVA_HOME=/usr/local/environment/jdk8 export PATH=$JAVA_HOME/bin:$PATH #jdk8 config end - 2019年9月13日
- 按
Esc
鍵、輸入:wq
回車,保存並退出。 - 啓用新的配置
source /etc/profile
- 打開/etc/目錄下的profile 文件:
- 查看java版本
java -version
步驟三、安裝Tomcat
- 下載
apache-tomcat-9.0.17.tar.gz
文件(Core下的tar.gz) - 使用MobaXterm上傳至
environment
目錄下 - 在tools目錄解壓縮
tar -zxvf apache-tomcat-9.0.17.tar.gz
- 修改名稱
mv apache-tomcat-9.0.17 tomcat9
- 配置Tomcat環境變量
- 打開/etc/目錄下的profile 文件:
vi /etc/profile
- 將如下代碼追加到 profile 文件末尾:
#tomcat9 config start - 2019年9月13日 export TOMCAT_HOME=/usr/local/environment/tomcat/tomcat9 export CATALINA_HOME=/usr/local/environment/tomcat/tomcat9 #tomcat9 config end - 2019年9月13日
- 按
Esc
鍵、輸入:wq
回車,保存並退出。 - 啓用新的配置
source /etc/profile
- 打開/etc/目錄下的profile 文件:
- 輸入
startup.sh
運行tomcat 輸入網址查看
配置(自選)
- 配置可視化manager頁面權限
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<user username="teAdmin" password="1761ZAxscdvf!" roles="manager-gui,manager-script"/>
- 修改 tomcat 的端口號和字符編碼
- 進入到
/root/tools/tomcat9/conf
目錄中 - 打開 tomcat 服務的配置文件
server.xml
- 找到如下代碼
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- 將其中的 8080 改成 HTTP 協議的默認端口 80,改後的代碼如下
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
- 進入到
分割線
我遇到的問題以及解決
一、CentOS7下Tomcat啓動慢的原因及解決方案
- 現象:CentOS 7系統中安裝Tomcat,啓動過程很慢,需要幾分鐘
- 經過查看日誌:tomcat目錄下使用
tail -f logs/catalina.out
發現耗時是session引起的隨機數問題導致的。 - 分析結果:主要原因是沒有足夠的熵來生成隨機數,導致卡住了,所以tomcat啓動很慢。
解決方案
- 方案一:
vim $JAVA_HOME/jre/lib/security/java.security securerandom.source=file:/dev/random 改爲 securerandom.source=file:/dev/urandom
- 方案二:
這個系統屬性egd表示熵收集守護進程(entropy gathering daemon)。vim $TOMCAT_HOME/bin/catalina.sh if [[ "$JAVA_OPTS" != *-Djava.security.egd=* ]]; then JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom" fi
- 方案三(本人採用):
yum install rng-tools # 安裝rngd服務(熵服務,增大熵池) systemctl start rngd # 啓動服務
題外話
- Tocmat的Session ID是通過SHA1算法計算得到的,計算Session ID的時候必須有一個密鑰。爲了提高安全性Tomcat在啓動的時候回通過隨機生成一個密鑰。
- 是否有足夠的熵來用於產生隨機數,可以通過如下命令來查看
[root@tomcat tools]# cat /proc/sys/kernel/random/entropy_avail 7
- 爲了加速
/dev/random
提供隨機數的速度,你可以通過操作設備的外設,讓其產生大量的中斷(如網絡傳輸數據,按鍵,移動鼠標,在命令行敲幾個不同的命令,俗稱聚氣。 - cat /dev/random 會消耗能量。
注意: 以上內容整理自:地主家的長工,轉載請註明原出處!
二、No such file or directory錯誤
JAVA_HOME=/root/specil/jdk/jdk1.8.0_201
JRE_HOME=$JAVA_HOME/jre
Permission denied錯誤
權限
chmod u+x *.sh
-
發生tomcat-x.x.x/logs/catalina.out: No such file or directory錯誤
-
報錯原因:在建立catalina.out文件時沒有logs這個目錄所以報錯了,我們需要手工建立logs目錄
mkdir logs
#停止firewall
systemctl stop firewalld.service
#開啓firewall
systemctl start firewalld.service
#禁止firewall開機啓動
systemctl disable firewalld.service
#查看默認防火牆狀態(關閉後顯示not running,開啓後顯示running)
firewall-cmd --state