8005端口是tomcat本身的端口,如果這個端口在啟動時未被tomcat占用的話,就無法使用它自帶的shutdown.sh腳本關閉tomcat
接下來我以tomcat-9.0.12為例說明
下載tomcat源碼包
wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz
因為tomcat是java語言編寫的,所以在運行是需要依賴JDK環境,接下來下載JDK
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz
--no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie "直接下載JDK,避免用戶驗證
源碼包下載完成后解壓
tar xf apache-tomcat-9.0.12.tar.gz -C /usr/local/ tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/
兩個源碼包解壓后,名字都比較長不好管理,可以改名,也可以做軟連接,這里我做軟連接
ln -s /usr/local/apache-tomcat-9.0.12 tomcat ln -s /usr/local/jdk1.8.0_181 java
方便以后使用java命令和tomcat的一些自帶腳本
vim /etc /profile export JAVA_HOME=/usr/local/java export CATALINA_HOME=/usr/local/tomcat export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
source /etc/profile
此時,可以直接使用startup.sh啟用tomcat
startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/java
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
此時雖然顯示Tomcat started,但是Tomcat服務不一定真的啟動成功,所以此時需要查詢一下
ss -antp | grep java
LISTEN 0 100 :::8009 :::* users:(("java",pid=1783,fd=54))
LISTEN 0 100 :::8080 :::* users:(("java",pid=1783,fd=49))
此時我們發現,Tomcat的8009端口以及8080端口都已經占用,但是8005端口還沒有出現,此時不影響使用,只是此時如果使用shutdown.sh無法關閉tomcat
8080端口:是tomcat負責建立HTTP連接的端口,通過瀏覽器訪問tomcat服務器的web應用時,使用此端口。
8009端口:是tomcat負責和其他的HTTP服務器建立連接的端口.如nginx和apache互通時使用
為什么在tomcat服務啟動時,8005端口沒有出現呢?
是tomcat啟用很慢,所以導致8005端口半天啟用不起來,此時我們更改一下服務器的熵池大小,可以加速tomcat的啟用,也可以有效
解決tomcat的8005端口起不來的問題。
首先,我們可以先查看一下此時的熵池大小
cat /proc/sys/kernel/random/entropy_avail 50
可以看見此時我們的熵池很小,接下來我們利用rng-tools工具更改熵池大小
yum -y install rng-tools
cp /usr/lib/systemd/system/rngd.service /etc/systemd/system vim /etc/systemd/system/rngd.service [Service] ExecStart=/sbin/rngd -f -r /dev/urandom //讓它讀取另外一個隨機數設備來增加熵池大小 systemctl daemon-reload //重新加載一下系統服務 systemctl restart rngd
此時我們再次查看熵池大小
cat /proc/sys/kernel/random/entropy_avail 2287
熵池的大小發生明顯變化,tomcat的啟用速度也變化,此時我們將之前啟用的tomcat殺掉
killall java ss -antp | grep java
再次啟用tomcat並查詢占用的端口
startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. ss -antp | grep java | column -t LISTEN 0 1 ::ffff:127.0.0.1:8005 :::* users:(("java",pid=11531,fd=70)) LISTEN 0 100 :::8009 :::* users:(("java",pid=11531,fd=54)) LISTEN 0 100 :::8080 :::* users:(("java",pid=11531,fd=49))
此時啟用是tomcat的三個端口全部啟用,需要關閉tomcat可以直接使用自帶的shutdown.sh腳本
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。