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