4.61 - 第二個JAVA應用 4.62/63 - Tomcat的管理功能

4.61 - 第二個JAVA應用 php

方法一:配置文件:java

/usr/local/tomcat/conf/server.xml
    <Host name="www.aminglinux.cc"  appBase="/data/wwwroot/www.aminglinux.cc"
        unpackWARs="true" autoDeploy="true">
    </Host>

重啓:mysql

/usr/local/tomcat/bin/shutdown.sh  #先關閉
/usr/local/tomcat/bin/startup.sh # 再開啓

啓動時,8005端口起來很是慢,這是由於tomcat在啓動時會調用系統的一個隨機字符設備

方法二:linux

拷貝一個tomcat目錄,修改server.xml裏面的三個端口(其中8009能夠刪掉,8080改成8081,8005改成8006)

小常識:web

經過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)

4.62/63 - Tomcat的管理功能算法

 

1)host-manager(管理虛擬主機)sql

這個功能主要用來管理虛擬主機的,能夠經過這個WEB界面,來中止、啓動以及增長虛擬主機。首先要配置用戶角色:apache

# 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。bootstrap

此時在瀏覽器裏輸入http://ip:8080/host-manager/就能夠訪問到主機管理界面了,但此時還有點問題,會提示403. 這是由於Tomcat還有一個安全的設置,默認不容許這個客戶端IP訪問host-manager頁面,解決辦法是修改配置文件:vim

# 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

2) 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/ 訪問到manager界面了。

代碼部分正在補充!!!

4.61 - 第二個JAVA應用 (部署一個新的應用)


[root@test01 conf.d]# vim /usr/local/tomcat/conf/server.xml 

 </Host>
         <Host name="www.chamlinux.cc"  appBase="/data/wwwroot/www.chamlinux.cc"
               unpackWARs="true" autoDeploy="true">
        </Host>





[root@test01 conf.d]# /usr/local/tomcat/bin/shutdown.sh  重啓
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@test01 conf.d]# ps aux |grep java
root       7625  0.0  0.0 112728   980 pts/3    R+   00:55   0:00 grep --color=auto java
[root@test01 conf.d]# /usr/local/tomcat/bin/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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
[root@test01 conf.d]# !ps
ps aux |grep java
root       7642 40.7  8.9 2290632 89052 pts/3   Sl   00:55   0:05 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       7658  0.0  0.0 112728   980 pts/3    R+   00:55   0:00 grep --color=auto java

[root@test01 ~]# ls /data/wwwroot/
bbs.champin.top  www.chamlinux.cc  www.champin.top

[root@test01 ~]# cp /root/zrlog.war  /data/wwwroot/www.chamlinux.cc/
[root@test01 ~]# cd /data/wwwroot/www.chamlinux.cc/
[root@test01 www.chamlinux.cc]# ls
zrlog  zrlog.war 
[root@test01 www.chamlinux.cc]# ls zrlog
admin  assets  error  favicon.ico  include  META-INF  WEB-INF
[root@test01 www.chamlinux.cc]# mv zrlog ROOT; rm -f zrlog.war 
[root@test01 www.chamlinux.cc]# ls
ROOT

綁定下windows的hosts  www.chamlinux.cc

而後用瀏覽器去訪問www.chamlinux.cc

還有另一種方法簡單演示一下
[root@test01 wwwroot]# cd /usr/local/
[root@test01 local]# ls
bin  games    lib    libexec  mysql5.7  sbin   src
etc  include  lib64  mysql    php-fpm   share  tomcat
[root@test01 local]# cp -r tomcat/  tomcat_2
[root@test01 local]# cd tomcat_2/

[root@test01 tomcat_2]# vim conf/server.xml 
修改三個端口8009直接刪掉,不要。
8005改爲8006
8080改爲8081
刪除
 <Host name="www.chamlinux.cc"  appBase="/data/wwwroot/www.chamlinux.cc"
               unpackWARs="true" autoDeploy="true">
        </Host>
三行


[root@test01 tomcat_2]# /usr/local/tomcat_2/bin/startup.sh
Using CATALINA_BASE:   /usr/local/tomcat_2
Using CATALINA_HOME:   /usr/local/tomcat_2
Using CATALINA_TMPDIR: /usr/local/tomcat_2/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat_2/bin/tomcat-juli.jar


[root@test01 tomcat_2]# ps aux |grep tomcat
root       2429  0.0  0.0 113312   696 pts/0    S    01:13   0:00 /bin/sh /usr/local/tomcat/bin/catalina.sh start
root       2430  2.3 18.8 2349592 188284 pts/0  Sl   01:13   0:35 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       2448  1.5  7.2 2045960 72576 pts/0   Sl   01:13   0:23 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre/bin/java -Xms8m -Xmx32m -Dfile.encoding=UTF-8 -Duser.dir=/usr/local/tomcat/webapps/ROOT/WEB-INF/plugins -jar /usr/local/tomcat/webapps/ROOT/WEB-INF/plugins/plugin-core.jar 27938 47938 /usr/local/tomcat/webapps/ROOT/WEB-INF/db.properties /usr/local/tomcat/webapps/ROOT/WEB-INF/plugins/jars 57938 /usr/local/tomcat/webapps/ROOT 2.1.0
root       2592  0.0  0.0 113312   692 pts/0    S    01:37   0:00 /bin/sh /usr/local/tomcat_2/bin/catalina.sh start
root       2593 14.9 13.5 2309700 134992 pts/0  Sl   01:37   0:13 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat_2/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat_2/bin/bootstrap.jar:/usr/local/tomcat_2/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat_2 -Dcatalina.home=/usr/local/tomcat_2 -Djava.io.tmpdir=/usr/local/tomcat_2/temp org.apache.catalina.startup.Bootstrap start
root       2650  0.0  0.0 112728   976 pts/0    R+   01:38   0:00 grep --color=auto tomcat

[root@test01 conf]# netstat -ltnp |grep java
tcp6       0      0 127.0.0.1:51659         :::*                    LISTEN      3034/java           
tcp6       0      0 :::8080                 :::*                    LISTEN      2430/java           
tcp6       0      0 :::8081                 :::*                    LISTEN      3015/java           
tcp6       0      0 127.0.0.1:57938         :::*                    LISTEN      2448/java           
tcp6       0      0 127.0.0.1:41659         :::*                    LISTEN      3034/java           
tcp6       0      0 127.0.0.1:21659         :::*                    LISTEN      3034/java           
tcp6       0      0 127.0.0.1:47938         :::*                    LISTEN      2448/java           
tcp6       0      0 127.0.0.1:27938         :::*                    LISTEN      2448/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2430/java           
tcp6       0      0 127.0.0.1:8006          :::*                    LISTEN      3015/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2430/java      

   


[root@test01 conf]# ls /usr/lib/jvm/jre/lib/security/java.security 
/usr/lib/jvm/jre/lib/security/java.security
[root@test01 conf]# vi !$
vi /usr/lib/jvm/jre/lib/security/java.security

# special device files such as file:/dev/urandom.




4.62/63 - Tomcat的管理功能

用瀏覽器訪問192.168.28.107:8080 Tomact的默認頁面點擊 Host Manager會出現403。

[root@test01 ~]# cd /usr/local/tomcat
[root@test01 tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work

[root@test01 tomcat]# vim conf/tomcat-users.xml

增長
 <role rolename="admin-gui"/>
  <role rolename="admin-script"/>
  <user username="tomcat" password="tomcat123" roles="admin-script,admin-gui"/>
</tomcat-users>


[root@test01 tomcat]# vim webapps/host-manager/META-INF/context.xml 

-->
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192\.168\.28.*" />

[root@test01 tomcat]# /usr/local/tomcat/bin/shutdown.sh
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@test01 tomcat]# /usr/local/tomcat/bin/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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

成功的話,點擊Host Manager 會出現帳號密碼框 輸入帳號tomcat,密碼tomcat123

能夠管理或者中止和增長 虛擬主機
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>
在沒有添加如上配置的話,添加的www.aaa.com虛擬機重啓後就會消失,這條配置能夠永久保存添加的虛擬主機

[root@test01 conf]# vim server.xml
<Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/>

添加上

[root@test01 tomcat]# /usr/local/tomcat/bin/shutdown.sh   重啓
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@test01 tomcat]# /usr/local/tomcat/bin/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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

如今再添加一次就有了。 www.aaa.com

[root@test01 conf]# ls /data/wwwroot/
bbs.champin.top  www.aaa.com  www.bbb.com  www.chamlinux.cc  www.champin.top
[root@test01 conf]# ls /data/wwwroot/www.aaa.com/
[root@test01 conf]# ls /data/wwwroot/www.bbb.com/


[root@test01 conf]# vim tomcat-users.xml 
  <role rolename="manager-gui"/>
  <role rolename="manager-script"/>
  <role rolename="admin-script"/>
  <role rolename="admin-gui"/>
  <user username="tomcat" password="tomcat123" roles="admin-gui,admin-script,manager-gui,manager-scripts"/>

[root@test01 tomcat]# /usr/local/tomcat/bin/shutdown.sh   重啓
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@test01 tomcat]# /usr/local/tomcat/bin/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
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

添加的虛擬機重啓後仍是會消失,操做了一下步驟在測試一下
[root@test01 conf]# rm -rvf /data/wwwroot/www.*.com 
已刪除目錄:"/data/wwwroot/www.aaa.com"
已刪除目錄:"/data/wwwroot/www.bbb.com"
已刪除目錄:"/data/wwwroot/www.ccc.com"
[root@test01 conf]# pwd
/usr/local/tomcat/conf
[root@test01 conf]# rm -rvf Catalina/
localhost/        www.aaa.com/      www.bbb.com/      www.ccc.com/      www.chamlinux.cc/
[root@test01 conf]# rm -rvf Catalina/www.*.com
已刪除"Catalina/www.aaa.com/manager.xml"
已刪除目錄:"Catalina/www.aaa.com"
已刪除"Catalina/www.bbb.com/manager.xml"
已刪除目錄:"Catalina/www.bbb.com"
已刪除"Catalina/www.ccc.com/manager.xml"
已刪除目錄:"Catalina/www.ccc.com"


在添加一次虛擬機www.bbb.com。再看看

[root@test01 conf]# cd ..
[root@test01 tomcat]# ls conf/Catalina/www.
www.bbb.com/      www.chamlinux.cc/ 
[root@test01 tomcat]# ls conf/Catalina/www.bbb.com/manager.xml 
conf/Catalina/www.bbb.com/manager.xml
[root@test01 tomcat]# ls /data/wwwroot/
bbs.champin.top  www.bbb.com  www.chamlinux.cc  www.champin.top
在點一下網頁的持久化配置ALL(剛重啓會消失多是由於沒作這一步)

[root@test01 tomcat]# vim conf/server.xml  一樣再看看配置文件,找到下面內容
</Host>
      <Host appBase="/data/wwwroot/www.bbb.com" copyXML="true"
          name="www.bbb.com">
        <Alias>bbb.com</Alias>


如今再重啓一次看看。如今重啓就會存在www.bbb.com了
也能夠用來單獨重啓一臺虛擬主機


Manager配置方法也相似於Host Manager

[root@test01 tomcat]# vim tomcat-users.xml 
以前這裏已經作了配置了

[root@test01 tomcat]# vim webapps/manager/META-INF/context.xml

<?xml version="1.0" encoding="UTF-8"?>
<Context privileged="true" requestCharacterEncoding="UTF-8">
  <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1|192.168.28.*"/>  添加一下IP
相關文章
相關標籤/搜索