tomcat啟動后8005端口未被占用


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腳本

 

 

 

 

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com