1. 程式人生 > >第二個Java應用和Tomcat的管理功能

第二個Java應用和Tomcat的管理功能

第二個Java應用

  • 在搭建好了JDK環境之後安裝了一個zrlog,如果在該環境中需要使用第二個Java應用,則需要以下兩種辦法實現。

方法一:編輯Tomcat配置檔案

[root@localhost ~]# vi /usr/local/tomcat/conf/server.xml
  • 在配置檔案中新增如下內容
 <Host name="www.bbb.com" appBase="/data/wwwroot/www.bbb.com"
        unpackWARs="true" autoDeploy="true">
 </Host>
  • /data/wwwroot/www.bbb.com 無需手動建立,在Tomcat重啟之後該目錄會自動被建立好。
  • 重啟Tomcat
/usr/local/tomcat/bin/shutdown.sh    #先關閉
/usr/local/tomcat/bin/startup.sh     #再開啟
  • 還是用zrlog為例,將zrlog.war包copy到生成的www.bbb.com目錄下
cp /usr/local/tomcat/webapps/zrlog-2.1.0.war /data/wwwroot/www.bbb.com/
  • 拷貝完了之後.war 檔案會自動解壓成目錄,這時需要把.war檔案刪掉,否則我們一旦把目錄改了名字,.war包又會自動解壓。將zrlog-2.1.0目錄改名為ROOT
  • 這個時候再從瀏覽器訪問又可以訪問到新的zrlog站點了。

方法二:再啟動一個Tomcat服務

  • 複製Tomcat目錄,並重命名為tomcat_2
[root@localhost www.bbb.com]# cd /usr/local
[root@localhost local]# cp -r tomcat/ tomcat_
  • 修改Tomcat_2中的配置檔案
[root@localhost local]# vim tomcat_2/conf/server.xml
  • 修改配置檔案中的三個埠,(8009埠可以刪掉,8005埠可以改為8006,8080埠可以改為8081。),因為方法一種新增過內容,需要把那些內容刪掉。
  • 重啟tomcat_2服務。
/usr/local/tomcat_2/bin/shutdown.sh    #先關閉
/usr/local/tomcat_2/bin/startup.sh     #再開啟
  • 將8081埠加入防火牆規則
[root@localhost local]# firewall-cmd --add-port=8081/tcp --permanent
success
[root@localhost local]# firewall-cmd --reload
success

補充常識

通過java.security.SecureRandom生成隨機數來實現,隨機數演算法使用
的是"SHA1PRNG",這個演算法的提供者在底層依賴到作業系統提供的隨機數
據,在linux上,與之相關的是/dev/random和/dev/urandom。

/dev/random裝置會返回小於熵池噪聲總數的隨機位元組。/dev/random可
生成高隨機性的公鑰或一次性密碼本。若熵池空了,對/dev/random的讀
操作將會被阻塞,直到收集到了足夠的環境噪聲為止,而 /dev/urandom
則是一個非阻塞的發生器。它是/dev/random的一個副本,它會重複使用
熵池中的資料以產生偽隨機資料。這表示對/dev/urandom的讀取操作不
會產生阻塞,但其輸出的熵可能小於/dev/random。

總之,8005埠啟動慢就是因為JVM呼叫了系統的/dev/random裝置生成
隨機數,而/dev/random生成隨機數時被block了,自然就會導致8005端
口啟動慢,解決辦法是不使用/dev/random,而是使用/dev/urandom。具
體步驟如下:

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

$JAVA_HOME在哪裡?
如果是openjdk(yum安裝的),在/usr/lib/jvm/
如果是下載的二進位制包,就是jdk的主目錄(如/usr/local/jdk_1.8)

Tomcat的管理功能

  • host-manager(管理虛擬主機)
    • 這個功能主要用來管理虛擬主機的,可以通過這個WEB介面,來停止、啟動以及增加虛擬主機。首先要配置使用者角色:
    	# vim conf/tomcat-user.xml // 更改或增加
    	  <role rolename="admin-gui"/>
    	 <role rolename="admin-script"/>
    	  <user username="tomcat" password="tomcat123" roles="admin-		script,admin-gui"/>
    	</tomcat-users>
    
    • 這裡的admin-gui和admin-script是兩個Tomcat內建的角色,host-manager功能需要這兩個角色的支援。其中admin-gui用於控制頁面訪問許可權,admin-script用於控制以簡單的文字的形式進行訪問host-manager。
  • 此時在瀏覽器裡輸入http://ip:8080/host-manager/就可以訪問到主機管理介面了,但此時還有點問題,會提示403. 這是因為Tomcat還有一個安全的設定,預設不允許這個客戶端IP訪問host-manager頁面,解決辦法是修改配置檔案:
    	# vim webapps/host-manager/META-INF/context.xml 
    	//在allow那一行增加白名單IP,如果是網段用*表示,例如192.168.100.*
    	allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.18.*"
    
  • 我們可以通過這個WEB介面來增加、停止以及啟動虛擬主機,非常方便。增加virtualhost,會在conf/Catalina/目錄下生成一個目錄,目錄永久存在,但virtualhost臨時的,重啟服務後會消失,可以讓其永久儲存到server.xml,但需要在server.xml裡增加,如下配置
    	<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
    
    • 如果出現403,則要新增加角色:admin-gui, admin-script
  • Manager(部署)
    • 其實在host-manager介面裡,點選右側的"Server Status"按鈕就會跳轉到Manager介面裡,要想成功訪問同樣需要配置tomcat-user.xml以及webapps/manager/META-INF/context.xml兩個配置檔案:
    	# vim conf/tomcat-user.xml //更改或增加
    	  <role rolename="manager-gui"/>
    	 <role rolename="manager-script"/>
    	 <role rolename="manager-jmx"/>
    	  <role rolename="manager-status"/>
    	  <user username="tomcat" password="tomcat123" roles="manager-gui,manager-scripts,manager-jmx,manager-status"/>
    	</tomcat-users>
    
  • 其中manager-gui用於控制manager頁面的訪問,manager-script 用於控制以簡單的文字的形式進行訪問manager,manager-jmx用於控制jmx訪問,manager-status用於控制伺服器狀態的檢視。然後編輯webapps/manager/META-INF/context.xml:
# vim webapps/manager/META-INF/context.xml 
//在allow那一行增加白名單IP,如果是網段用*表示,例如192.168.100.*
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.18.*"