第二個Java應用和Tomcat的管理功能
阿新 • • 發佈:2019-02-27
第二個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.*"
- 完成以上兩步操作後,就可以通過http://ip:8080/manager/ 訪問到ma