整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          weblogic安裝避坑指南

          weblogic安裝避坑指南

          1

          首先確保服務(wù)器的jdk版本。

          02

          到官網(wǎng)下載最新版本的安裝包,選擇Quick installer。

          https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html

          03

          下載之后是個(gè)zip文件,在本地解壓,執(zhí)行mkdir /opt/weblogic-generic14

          04

          在/opt目錄下創(chuàng)建目錄存放jar包把解壓后的jar包文件上傳到所創(chuàng)建的目錄下。

          注意:root用戶下會(huì)安裝失敗,使用useradd weblogic創(chuàng)建用戶weblogic

          設(shè)置該用戶下的環(huán)境變量,添加java options,否則后續(xù)的bi會(huì)報(bào)出X11 window錯(cuò)誤而無(wú)法查看報(bào)告。

          設(shè)置為:

          export JAVA_HOME=/usr/java

          export CLASSPATH=.:$JAVA_HOME/lib:$CLASSPATH

          export PATH=$JAVA_HOME/bin:$PATH

          JAVA_OPTIONS="${JAVA_OPTIONS} -Djava.awt.headless=true"

          export JAVA_OPTIONS

          05

          使用的centos7沒(méi)有圖形界面,需要通過(guò)靜默安裝的方式來(lái)安裝。

          mkdir /opt/weblogic-generic14/oraInventory,mkdir wls1411創(chuàng)建安裝所需要的目錄。

          06

          使用vim wls.rsp創(chuàng)建配置文件,注意不能有中文注釋和多余的空格

          [ENGINE]

          Response File Version=1.0.0.0.0

          [GENERIC]

          ORACLE_HOME=/opt/weblogic-generic14/wls1411

          INSTALL_TYPE=WebLogic Server

          MYORACLESUPPORT_USERNAME=

          MYORACLESUPPORT_PASSWORD=

          DECLINE_SECURITY_UPDATES=ture

          SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

          PROXY_HOST=

          PROXY_PORT=

          PROXY_USER=

          PROXY_PWD=

          COLLECTOR_SUPPORTTHUB_URL=

          再創(chuàng)建另一個(gè)配置文件vim oraInst.loc

          Inventory_loc=/opt/weblogic-generic14/oraInventory

          Inst_group=weblogic

          07

          執(zhí)行chown -R weblogic:weblogic /opt/weblogic-generic14把整個(gè)目錄的從屬遞歸設(shè)置為weblogic用戶

          08

          執(zhí)行su weblogic切換到該用戶,注意一定要切換到非root用戶

          cd /opt/weblogic-generic14進(jìn)入到該目錄下,

          執(zhí)行java -jar fmw_14.1.1.0.0_wls_lite_generic.jar -silent -responseFile /opt/weblogic-generic14/wls.rsp -invPtrLoc /opt/weblogic-generic14/oraInst.loc

          顯示如上信息,表示已經(jīng)安裝完成

          09

          然后創(chuàng)建目錄用于配置域

          mkdir -p /opt/weblogic-generic14/wls1411/user_projects/domains/base_domain/

          10

          執(zhí)行wlst.sh文件

          cd /opt/weblogic-generic14/wls1411/wlserver/common/bin/

          ./wlst.sh

          11

          隨后會(huì)進(jìn)入類似mysql>這樣的終端,然后使用命令進(jìn)行域相關(guān)的配置

          wls:/offline>readTemplateForUpdate('/opt/weblogic-generic14/wls1411/wlserver/common/templates/wls/wls.jar')

          wls:/offline/base_domain>cd ('Server/AdminServer')

          wls:/offline/base_domain/Server/AdminServer>set('ListenAddress','')

          wls:/offline/base_domain/Server/AdminServer>set('ListenPort',9100)//端口號(hào)配置

          wls:/offline/base_domain/Server/AdminServer>cd('/')

          wls:/offline/base_domain>cd('Security/base_domain/User/weblogic')//用戶名

          wls:/offline/base_domain/Security/base_domain/User/weblogic>cmo.setPassword('Yonghong123')//密碼

          wls:/offline/base_domain/Security/base_domain/User/weblogic>setOption('OverwriteDomain','true')

          wls:/offline/base_domain/Security/base_domain/User/weblogic>writeDomain('/opt/weblogic-generic14/wls1411/user_projects/domains/base_domain/')

          wls:/offline/base_domain/Security/base_domain/User/weblogic>closeTemplate()

          wls:/offline>exit()

          12

          配置完之后即可啟動(dòng)服務(wù),可選擇前臺(tái)或者后臺(tái)啟動(dòng),下述命令可使其后臺(tái)運(yùn)行

          nohup ./startWeblogic.sh &

          13

          瀏覽器輸入192.168.1.146:9100/console,即可完成訪問(wèn),登錄上面設(shè)置的用戶名weblogic,密碼Yonghong123,然后可使用war包部署bi。

          14

          部署項(xiàng)目的話,首先要把war包放置在weblogic的根目錄下,然后登陸進(jìn)wenlogic的頁(yè)面,在左側(cè)樹(shù)狀欄目中點(diǎn)擊【部署】,然后在右邊點(diǎn)擊【安裝】,選擇傳入進(jìn)去的war包,點(diǎn)擊下一步,選擇【將此部署安裝為應(yīng)用程序】再下一步

          要注意名稱,名稱是bi的話,就通過(guò)192.168.1.146:9100/bi來(lái)進(jìn)行訪問(wèn);再點(diǎn)擊【完成】即可完成部署。

          一些注意事項(xiàng):

          為了保證永洪提供的各種Demo的正常使用,建議需要部署的服務(wù)器上安裝永洪產(chǎn)品,安裝完成后確認(rèn)BI服務(wù)可以正常使用后即可關(guān)閉該服務(wù)。之后將永洪bi.home的絕對(duì)路徑提供給永洪申請(qǐng)war包。

          15

          將永洪提供的用于Weblogic部署的war(若如特殊要求一般是bi.war)拷貝到要部署的服務(wù)器上,可以查看bi.war下的WEB-INF/web.xml,確認(rèn)其中的bi.home路徑和要部署的環(huán)境一致。

          (注:紅框中為所在環(huán)境的對(duì)應(yīng)目錄)

          16

          進(jìn)入weblogic控制臺(tái),在“部署”節(jié)點(diǎn)下,點(diǎn)擊“安裝”

          17

          選中要部署的bi.war,然后點(diǎn)擊下一步

          18

          選擇“將此部署安裝為應(yīng)用程序”,點(diǎn)擊下一步

          19

          點(diǎn)擊“完成”按鈕即可完成部署。

          20

          部署完成后,會(huì)自動(dòng)啟動(dòng)服務(wù),并自動(dòng)跳轉(zhuǎn)到“部署概要”頁(yè)面顯示相關(guān)成功信息。

          常見(jiàn)問(wèn)題處理:

          bi.war\WEB-INF\weblogic.xml中定義了優(yōu)先使用BI應(yīng)用中的類,如果有需要可以手動(dòng)修改添加,添加完成后重啟一下應(yīng)用即可。

          作緣由

          平時(shí)使用 tomcat 等 web 服務(wù)器不可謂不多,但是一直一知半解。

          于是想著自己實(shí)現(xiàn)一個(gè)簡(jiǎn)單版本,學(xué)習(xí)一下 tomcat 的精髓。

          Tomcat 是什么?

          Tomcat 就像一個(gè)餐館的廚房,它負(fù)責(zé)接收顧客(用戶)的點(diǎn)餐(請(qǐng)求),然后根據(jù)菜單(你的 Java Web 應(yīng)用)來(lái)制作菜肴(生成網(wǎng)頁(yè))。

          這個(gè)過(guò)程中,廚師(Tomcat)需要遵循一定的食譜(Servlet 和 JSP 規(guī)范),確保每個(gè)菜肴(網(wǎng)頁(yè))都符合顧客的期待。

          Tomcat 的作用:

          1.接收請(qǐng)求:當(dāng)用戶通過(guò)瀏覽器訪問(wèn)網(wǎng)站時(shí),Tomcat 會(huì)接收到這個(gè)請(qǐng)求。2.處理請(qǐng)求:Tomcat 會(huì)根據(jù)請(qǐng)求的內(nèi)容,找到對(duì)應(yīng)的 Java 程序(Servlet 或 JSP 頁(yè)面)來(lái)處理這個(gè)請(qǐng)求。3.生成響應(yīng):處理完請(qǐng)求后,Tomcat 會(huì)生成一個(gè)響應(yīng),通常是一個(gè)新的網(wǎng)頁(yè),然后發(fā)送回用戶的瀏覽器。

          Tomcat 的特點(diǎn):

          1.開(kāi)源免費(fèi):Tomcat 是完全開(kāi)源的,這意味著你可以免費(fèi)使用它,并且可以看到它的源代碼。2.輕量級(jí):相比于其他一些 Java 應(yīng)用服務(wù)器,Tomcat 更輕量,啟動(dòng)更快,占用資源更少。3.易于使用:Tomcat 的配置相對(duì)簡(jiǎn)單,容易上手,適合初學(xué)者和小型項(xiàng)目。4.廣泛支持:由于 Tomcat 的流行,很多 Java Web 開(kāi)發(fā)相關(guān)的工具和框架都支持 Tomcat。

          如何使用 Tomcat?

          1.下載安裝:從 Apache 官網(wǎng)下載 Tomcat,然后解壓到一個(gè)目錄。2.部署應(yīng)用:將你的 Java Web 應(yīng)用(通常是 WAR 文件)放到 Tomcat 的 webapps 目錄下。3.啟動(dòng)服務(wù):運(yùn)行 Tomcat 的啟動(dòng)腳本(比如 startup.batstartup.sh),Tomcat 就會(huì)開(kāi)始監(jiān)聽(tīng)網(wǎng)絡(luò)請(qǐng)求。4.訪問(wèn)應(yīng)用:在瀏覽器中輸入 Tomcat 的地址(通常是 http://localhost:8080),你就可以看到應(yīng)用的首頁(yè)了。

          Tomcat 的局限性:

          ?功能有限:對(duì)于大型企業(yè)級(jí)應(yīng)用,Tomcat 可能不夠強(qiáng)大,因?yàn)樗鄙僖恍└呒?jí)功能,比如復(fù)雜的事務(wù)管理、安全性等。?性能問(wèn)題:雖然 Tomcat 輕量,但在高并發(fā)的情況下,它可能不如專業(yè)的應(yīng)用服務(wù)器表現(xiàn)出色。

          總結(jié):

          Tomcat 就像一個(gè)小型的餐館廚房,它適合做一些簡(jiǎn)單的菜肴(小型 Web 應(yīng)用),而且成本低廉,操作簡(jiǎn)便。

          但如果你要舉辦一場(chǎng)大型的宴會(huì)(大型 Web 應(yīng)用),可能就需要一個(gè)更大、更專業(yè)的廚房(如 JBoss、WebLogic 等)了。

          怎么實(shí)現(xiàn)一個(gè) tomcat 呢?

          Tomcat就像是一個(gè)用Java語(yǔ)言搭起來(lái)的大舞臺(tái),專門(mén)用來(lái)演出那些用Java編寫(xiě)的網(wǎng)頁(yè)劇。想要玩得轉(zhuǎn)Tomcat,你最好對(duì)Java語(yǔ)言有所了解。

          搭建Tomcat的過(guò)程,就像是搭積木。首先,你得用Java寫(xiě)一個(gè)啟動(dòng)類,這個(gè)類就是整個(gè)服務(wù)器的大腦。然后,用Java的ServerSocket這個(gè)工具來(lái)監(jiān)聽(tīng)網(wǎng)絡(luò)上的敲門(mén)聲,也就是連接請(qǐng)求。一旦有人來(lái)敲門(mén),服務(wù)器就得看看人家想要啥,然后根據(jù)需求給出回應(yīng)。

          接下來(lái),我們要讓服務(wù)器學(xué)會(huì)處理網(wǎng)頁(yè)請(qǐng)求。這就需要一個(gè)叫做Servlet的小家伙,它是一個(gè)接口,你需要寫(xiě)一個(gè)類來(lái)實(shí)現(xiàn)這個(gè)接口。這個(gè)類得有幾個(gè)特定的動(dòng)作,比如準(zhǔn)備(init())、服務(wù)(service())和收工(destroy())。在服務(wù)動(dòng)作里,Servlet得判斷人家是用什么方式來(lái)請(qǐng)求的,比如是GET還是POST,然后做出相應(yīng)的反應(yīng)。

          服務(wù)器還得能處理那些不需要服務(wù)器現(xiàn)場(chǎng)制作的靜態(tài)文件,比如圖片、網(wǎng)頁(yè)模板或者CSS樣式表。這些文件就像是現(xiàn)成的道具,直接從硬盤(pán)里拿出來(lái)給人家就行。

          當(dāng)然,對(duì)于那些需要服務(wù)器現(xiàn)場(chǎng)制作的動(dòng)態(tài)網(wǎng)頁(yè),比如JSP,服務(wù)器就得根據(jù)請(qǐng)求的信息,現(xiàn)場(chǎng)編個(gè)網(wǎng)頁(yè),然后發(fā)回去。

          此外,服務(wù)器還得能處理基本的網(wǎng)頁(yè)請(qǐng)求,比如GET和POST,并且能讀懂人家的請(qǐng)求信息,知道人家想訪問(wèn)哪個(gè)頁(yè)面,還帶了什么額外的信息。

          控制服務(wù)器的開(kāi)關(guān)也很重要。你得寫(xiě)個(gè)方法來(lái)控制服務(wù)器的啟動(dòng)和停止。啟動(dòng)時(shí),要準(zhǔn)備好要用的東西,比如確定用哪個(gè)端口號(hào),設(shè)置好線程池。關(guān)閉時(shí),要確保資源都收拾干凈,網(wǎng)絡(luò)連接也都斷開(kāi)。

          最后,你可以通過(guò)編寫(xiě)幾個(gè)簡(jiǎn)單的Servlet和一些靜態(tài)文件,然后在瀏覽器里測(cè)試你的服務(wù)器。確保服務(wù)器能夠正確處理各種請(qǐng)求,并且返回正確的結(jié)果。

          雖然這只是Tomcat的入門(mén)階段,但要打造一個(gè)完整的Tomcat,還有很多東西要考慮,比如怎么讓多個(gè)請(qǐng)求同時(shí)處理(多線程)、怎么高效管理數(shù)據(jù)庫(kù)連接(連接池)、怎么記住每個(gè)訪客的身份(會(huì)話管理)、怎么保護(hù)服務(wù)器不受壞蛋的攻擊(安全問(wèn)題)等等。

          咱們可以一步步來(lái),先搞定這些基本的,再慢慢增加新的功能。

          從零手寫(xiě)例子

          項(xiàng)目簡(jiǎn)介

           /\_/\  
          ( o.o ) 
           > ^ <

          mini-cat 是簡(jiǎn)易版本的 tomcat 實(shí)現(xiàn)。別稱嗅虎(心有猛虎,輕嗅薔薇。)

          開(kāi)源地址:https://github.com/houbb/minicat

          特性

          ?

          簡(jiǎn)單的啟動(dòng)實(shí)現(xiàn)/netty 支持

          ?

          servlet 支持

          ?

          靜態(tài)網(wǎng)頁(yè)支持

          ?

          filter/listener 支持

          ?

          wars 支持

          快速開(kāi)始

          maven 依賴

          <dependency>
              <groupId>com.github.houbb</groupId>
              <artifactId>minicat</artifactId>
              <version>0.7.0</version>
          </dependency>

          啟動(dòng)測(cè)試

          運(yùn)行測(cè)試類 MiniCatBootstrapMain#main

          MiniCatBootstrap bootstrap=new MiniCatBootstrap();
          bootstrap.start();

          啟動(dòng)日志:

          [INFO] [2024-04-03 11:09:15.178] [main] [c.g.h.m.s.s.WebXmlServletManager.register] - [MiniCat] register servlet, url=/my, servlet=com.github.houbb.minicat.support.servlet.MyMiniCatHttpServlet
          [INFO] [2024-04-03 11:09:15.180] [Thread-0] [c.g.h.m.b.MiniCatBootstrap.startSync] - [MiniCat] start listen on port 8080
          [INFO] [2024-04-03 11:09:15.180] [Thread-0] [c.g.h.m.b.MiniCatBootstrap.startSync] - [MiniCat] visit url http://127.0.0.1:8080

          頁(yè)面訪問(wèn):http://127.0.0.1:8080

          響應(yīng):

          http://127.0.0.1:8080

          測(cè)試

          servlet: http://127.0.0.1:8080/my

          html: http://127.0.0.1:8080/index.html

          開(kāi)源地址

          開(kāi)源地址:https://github.com/houbb/minicat

          開(kāi)源不易,歡迎 fork+star~ 鼓勵(lì)一下作者

          系列文章

          點(diǎn)擊 {閱讀原文},獲得更好的閱讀體驗(yàn)

          手寫(xiě)實(shí)現(xiàn)系列

          從零手寫(xiě)實(shí)現(xiàn) apache Tomcat-01-入門(mén)介紹[1]

          從零手寫(xiě)實(shí)現(xiàn) apache Tomcat-02-web.xml 入門(mén)詳細(xì)介紹[2]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-03-基本的 socket 實(shí)現(xiàn)[3]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-04-請(qǐng)求和響應(yīng)的抽象[4]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-05-servlet 處理支持[5]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-06-servlet bio/thread/nio/netty 池化處理[6]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-07-war 如何解析處理三方的 war 包?[7]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-08-tomcat 如何與 springboot 集成?[8]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-09-servlet 處理類[9]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-10-static resource 靜態(tài)資源文件[10]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-11-filter 過(guò)濾器[11]

          從零手寫(xiě)實(shí)現(xiàn) tomcat-12-listener 監(jiān)聽(tīng)器[12]

          tomcat11 系列文章

          如果你對(duì) tomcat 不是很熟,可以閱讀下面的系列。

          目前的最新版本, tomcat11:

          web server apache tomcat11-01-官方文檔入門(mén)介紹[13]

          web server apache tomcat11-02-setup 啟動(dòng)[14]

          web server apache tomcat11-03-deploy 如何部署[15]

          web server apache tomcat11-04-manager 如何管理?[16]

          web server apache tomcat11-06-Host Manager App -- Text Interface[17]

          web server apache tomcat11-07-Realm Configuration[18]

          web server apache tomcat11-08-JNDI Resources[19]

          web server apache tomcat11-09-JNDI Datasource[20]

          web server apache tomcat11-10-Class Loader[21]

          web server apache tomcat11-11-Jasper 2 JSP Engine[22]

          web server apache tomcat11-12-SSL/TLS Configuration[23]

          web server apache tomcat11-13-SSI[24]

          web server apache tomcat11-14-CGI[25]

          web server apache tomcat11-15-proxy[26]

          web server apache tomcat11-16-mbean[27]

          web server apache tomcat11-17-default-servlet[28]

          web server apache tomcat11-18-clusting 集群[29]

          web server apache tomcat11-19-load balance 負(fù)載均衡[30]

          web server apache tomcat11-20-connectors 連接器[31]

          web server apache tomcat11-21-monitor and management 監(jiān)控與管理[32]

          web server apache tomcat11-22-logging 日志[33]

          web server apache tomcat11-23-APR[34]

          web server apache tomcat11-24-Virtual Hosting and Tomcat[35]

          web server apache tomcat11-25-Advanced IO and Tomcat[36]

          web server apache tomcat11-26-maven jars[37]

          web server apache tomcat11-27-Security Considerations[38]

          web server apache tomcat11-28-Windows Service[39]

          web server apache tomcat11-29-Windows Authentication[40]

          web server apache tomcat11-30-The Tomcat JDBC Connection Pool[41]

          web server apache tomcat11-31-websocket[42]

          web server apache tomcat11-32-rewrite[43]

          web server apache tomcat11-33-CDI[44]

          web server apache tomcat11-34-Ahead of Time compilation support[45]

          References

          [1] 從零手寫(xiě)實(shí)現(xiàn) apache Tomcat-01-入門(mén)介紹: https://houbb.github.io/2016/11/07/web-server-tomcat-02-hand-write-overview
          [2] 從零手寫(xiě)實(shí)現(xiàn) apache Tomcat-02-web.xml 入門(mén)詳細(xì)介紹:
          https://houbb.github.io/2016/11/07/web-server-tomcat-02-hand-write-web-xml
          [3] 從零手寫(xiě)實(shí)現(xiàn) tomcat-03-基本的 socket 實(shí)現(xiàn):
          https://houbb.github.io/2016/11/07/web-server-tomcat-03-hand-write-simple-socket
          [4] 從零手寫(xiě)實(shí)現(xiàn) tomcat-04-請(qǐng)求和響應(yīng)的抽象:
          https://houbb.github.io/2016/11/07/web-server-tomcat-04-hand-write-request-and-resp
          [5] 從零手寫(xiě)實(shí)現(xiàn) tomcat-05-servlet 處理支持:
          https://houbb.github.io/2016/11/07/web-server-tomcat-05-hand-write-servlet-web-xml
          [6] 從零手寫(xiě)實(shí)現(xiàn) tomcat-06-servlet bio/thread/nio/netty 池化處理:
          https://houbb.github.io/2016/11/07/web-server-tomcat-06-hand-write-thread-pool
          [7] 從零手寫(xiě)實(shí)現(xiàn) tomcat-07-war 如何解析處理三方的 war 包?:
          https://houbb.github.io/2016/11/07/web-server-tomcat-07-hand-write-war
          [8] 從零手寫(xiě)實(shí)現(xiàn) tomcat-08-tomcat 如何與 springboot 集成?:
          https://houbb.github.io/2016/11/07/web-server-tomcat-08-hand-write-embed
          [9] 從零手寫(xiě)實(shí)現(xiàn) tomcat-09-servlet 處理類:
          https://houbb.github.io/2016/11/07/web-server-tomcat-09-hand-write-servlet
          [10] 從零手寫(xiě)實(shí)現(xiàn) tomcat-10-static resource 靜態(tài)資源文件:
          https://houbb.github.io/2016/11/07/web-server-tomcat-10-hand-write-static-resource
          [11] 從零手寫(xiě)實(shí)現(xiàn) tomcat-11-filter 過(guò)濾器:
          https://houbb.github.io/2016/11/07/web-server-tomcat-11-hand-write-filter
          [12] 從零手寫(xiě)實(shí)現(xiàn) tomcat-12-listener 監(jiān)聽(tīng)器:
          https://houbb.github.io/2016/11/07/web-server-tomcat-12-hand-write-listener
          [13] web server apache tomcat11-01-官方文檔入門(mén)介紹:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-01-intro
          [14] web server apache tomcat11-02-setup 啟動(dòng):
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-02-setup
          [15] web server apache tomcat11-03-deploy 如何部署:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-03-deploy
          [16] web server apache tomcat11-04-manager 如何管理?:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-04-manager
          [17] web server apache tomcat11-06-Host Manager App -- Text Interface:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-06-host-manager
          [18] web server apache tomcat11-07-Realm Configuration:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-07-relam
          [19] web server apache tomcat11-08-JNDI Resources:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-08-jndi
          [20] web server apache tomcat11-09-JNDI Datasource:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-09-jdbc-datasource
          [21] web server apache tomcat11-10-Class Loader:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-10-classloader-howto
          [22] web server apache tomcat11-11-Jasper 2 JSP Engine:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-11-jsps
          [23] web server apache tomcat11-12-SSL/TLS Configuration:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-12-ssl
          [24] web server apache tomcat11-13-SSI:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-13-ssi
          [25] web server apache tomcat11-14-CGI:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-14-cgi
          [26] web server apache tomcat11-15-proxy:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-15-proxy
          [27] web server apache tomcat11-16-mbean:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-16-mbean
          [28] web server apache tomcat11-17-default-servlet:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-17-default-servlet
          [29] web server apache tomcat11-18-clusting 集群:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-18-clusting
          [30] web server apache tomcat11-19-load balance 負(fù)載均衡:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-19-load-balance
          [31] web server apache tomcat11-20-connectors 連接器:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-20-connectors
          [32] web server apache tomcat11-21-monitor and management 監(jiān)控與管理:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-21-monitor
          [33] web server apache tomcat11-22-logging 日志:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-22-logging
          [34] web server apache tomcat11-23-APR:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-23-apr
          [35] web server apache tomcat11-24-Virtual Hosting and Tomcat:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-24-virtual-host
          [36] web server apache tomcat11-25-Advanced IO and Tomcat:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-25-aio
          [37] web server apache tomcat11-26-maven jars:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-26-maven-jars
          [38] web server apache tomcat11-27-Security Considerations:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-27-security
          [39] web server apache tomcat11-28-Windows Service:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-28-windows-service
          [40] web server apache tomcat11-29-Windows Authentication:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-29-windows-auth
          [41] web server apache tomcat11-30-The Tomcat JDBC Connection Pool:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-30-tomcat-jdbc-pool
          [42] web server apache tomcat11-31-websocket:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-31-websocket
          [43] web server apache tomcat11-32-rewrite:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-32-rewrite
          [44] web server apache tomcat11-33-CDI:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-33-cdi
          [45] web server apache tomcat11-34-Ahead of Time compilation support:
          https://houbb.github.io/2016/11/07/web-server-tomcat11-doc-34-aot

          . Tomcat簡(jiǎn)介

          Tomcat是Apache軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開(kāi)發(fā)而成。

          Tomcat服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web應(yīng)用服務(wù)器,屬于輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問(wèn)用戶不是很多的場(chǎng)合下被普遍使用,是開(kāi)發(fā)和調(diào)試JSP程序的首選。

          Tomcat和Nginx、Apache(httpd)、lighttpd等Web服務(wù)器一樣,具有處理HTML頁(yè)面的功能,另外它還是一個(gè)Servlet和JSP容器,獨(dú)立的Servlet容器是Tomcat的默認(rèn)模式。不過(guò),Tomcat處理靜態(tài)HTML的能力不如Nginx/Apache服務(wù)器。

          對(duì)比php軟件,區(qū)別?

          目前Tomcat最新版本為9.0。Java容器還有resin、weblogic等。

          2. Tomcat安裝

          2.1 軟件準(zhǔn)備

          JDK下載:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Tomcat下載:http://tomcat.apache.org/

          因?yàn)閖dk和Tomcat的版本對(duì)運(yùn)維來(lái)說(shuō)沒(méi)什么區(qū)別,提供本文使用的軟件下載地址:http://pan.baidu.com/s/1IpioA

          2.2 部署java環(huán)境

          [root@tomcat ~]# cd /application/tools/
          [root@tomcat tools]# rz
          rz waiting to receive.
          Starting zmodem transfer. Press Ctrl+C to cancel.
          Transferring apache-tomcat-8.0.27.tar.gz...
           100% 8914 KB 8914 KB/sec 00:00:01 0 Errors 
          Transferring jdk-8u60-linux-x64.tar.gz...
           100% 176990 KB 14749 KB/sec 00:00:12 0 Errors 
          tar xf jdk-8u60-linux-x64.tar.gz -C /application/
          ln -s /application/jdk1.8.0_60 /application/jdk
          sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
          source /etc/profile
          #→出現(xiàn)下面結(jié)果證明部署成功
          [root@tomcat ~]# java -version
          java version "1.8.0_60"
          Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
          Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
          上面有一個(gè)sed命令的特殊用法,欲知詳情→http://edu.51cto.com/course/course_id-5266.html

          2.3 安裝Tomcat

          tar xf apache-tomcat-8.0.27.tar.gz -C /application/
          ln -s /application/apache-tomcat-8.0.27 /application/tomcat
          echo 'export TOMCAT_HOME=/application/tomcat'>>/etc/profile
          source /etc/profile
          chown -R root.root /application/jdk/ /application/tomcat/
          [root@tomcat ~]# tail -4 /etc/profile
          export JAVA_HOME=/application/jdk
          export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
          export CLASSPATH=.$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar
          export TOMCAT_HOME=/application/tomcat

          2.4 Tomcat目錄介紹

          [root@tomcat ~]# cd /application/tomcat/
          [root@tomcat tomcat]# tree -L 1
          .
          ├── bin #→用以啟動(dòng)、關(guān)閉Tomcat或者其它功能的腳本(.bat文件和.sh文件)
          ├── conf #→用以配置Tomcat的XML及DTD文件
          ├── lib #→存放web應(yīng)用能訪問(wèn)的JAR包
          ├── LICENSE
          ├── logs #→Catalina和其它Web應(yīng)用程序的日志文件
          ├── NOTICE
          ├── RELEASE-NOTES
          ├── RUNNING.txt
          ├── temp #→臨時(shí)文件
          ├── webapps #→Web應(yīng)用程序根目錄
          └── work #→用以產(chǎn)生有JSP編譯出的Servlet的.java和.class文件
          7 directories, 4 files
          [root@tomcat tomcat]# cd webapps/
          [root@tomcat webapps]# ll
          total 20
          drwxr-xr-x 14 root root 4096 Oct 5 12:09 docs #→tomcat幫助文檔
          drwxr-xr-x 6 root root 4096 Oct 5 12:09 examples #→web應(yīng)用實(shí)例
          drwxr-xr-x 5 root root 4096 Oct 5 12:09 host-manager #→管理
          drwxr-xr-x 5 root root 4096 Oct 5 12:09 manager #→管理
          drwxr-xr-x 3 root root 4096 Oct 5 12:09 ROOT #→默認(rèn)網(wǎng)站根目錄

          2.5 啟動(dòng)Tomcat

          #→啟動(dòng)程序/application/tomcat/bin/startup.sh
          #→關(guān)閉程序/application/tomcat/bin/shutdown.sh
          [root@tomcat ~]# /application/tomcat/bin/startup.sh
          Using CATALINA_BASE: /application/tomcat
          Using CATALINA_HOME: /application/tomcat
          Using CATALINA_TMPDIR: /application/tomcat/temp
          Using JRE_HOME: /application/jdk
          Using CLASSPATH: /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar
          Tomcat started.
          [root@tomcat ~]# netstat -tunlp|grep java
          tcp 0 0 :::8009 :::* LISTEN 4743/java 
          tcp 0 0 :::8080 :::* LISTEN 4743/java 
          [root@tomcat ~]# ps -ef|grep [j]ava
          root 4743 1 17 06:10 pts/0 00:00:03 /application/jdk/bin/java -Djava.util.logging.config.file=/application/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/application/tomcat/endorsed -classpath /application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat -Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrap start

          2.6 訪問(wèn)網(wǎng)站

          網(wǎng)址:http://10.0.0.3:8080/

          2.7 Tomcat日志

          [root@tomcat ~]# cd /application/tomcat/logs/
          [root@tomcat logs]# ls
          catalina.2016-01-26.log localhost.2016-01-26.log
          catalina.out localhost_access_log.2016-01-26.txt
          host-manager.2016-01-26.log manager.2016-01-26.log
          #→tomcat實(shí)時(shí)日志
          [root@tomcat logs]# tailf catalina.out
          26-Jan-2016 06:10:24.006 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/examples has finished in 666 ms
          26-Jan-2016 06:10:24.007 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/docs
          26-Jan-2016 06:10:24.054 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/docs has finished in 47 ms
          26-Jan-2016 06:10:24.055 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/manager
          26-Jan-2016 06:10:24.134 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/manager has finished in 80 ms
          26-Jan-2016 06:10:24.139 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /application/apache-tomcat-8.0.27/webapps/host-manager
          26-Jan-2016 06:10:24.188 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /application/apache-tomcat-8.0.27/webapps/host-manager has finished in 50 ms
          26-Jan-2016 06:10:24.195 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
          26-Jan-2016 06:10:24.206 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
          26-Jan-2016 06:10:24.211 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1560 ms

          3. Tomcat配置文件

          3.1 Tomcat配置文件

          [root@tomcat conf]# pwd
          /application/tomcat/conf
          [root@tomcat conf]# ll -h
          total 216K
          drwxr-xr-x 3 root root 4.0K Jan 26 06:10 Catalina
          -rw------- 1 root root 13K Sep 28 16:19 catalina.policy
          -rw------- 1 root root 7.0K Sep 28 16:19 catalina.properties
          -rw------- 1 root root 1.6K Sep 28 16:19 context.xml
          -rw------- 1 root root 3.4K Sep 28 16:19 logging.properties
          -rw------- 1 root root 6.4K Sep 28 16:19 server.xml #→主配置文件
          -rw------- 1 root root 1.8K Sep 28 16:19 tomcat-users.xml #→Tomcat管理用戶配置文件
          -rw------- 1 root root 1.9K Sep 28 16:19 tomcat-users.xsd
          -rw------- 1 root root 164K Sep 28 16:19 web.xml

          3.2 Tomcat管理

          測(cè)試功能,生產(chǎn)環(huán)境不要用。

          Tomcat管理功能用于對(duì)Tomcat自身以及部署在Tomcat上的應(yīng)用進(jìn)行管理的web應(yīng)用。在默認(rèn)情況下是處于禁用狀態(tài)的。如果需要開(kāi)啟這個(gè)功能,就需要配置管理用戶,即配置前面說(shuō)過(guò)的tomcat-users.xml。

          [root@tomcat ~]# vim /application/tomcat/conf/tomcat-users.xml
          …………
          <role rolename="manager-gui"/>
          <role rolename="admin-gui"/>
          <user username="tomcat" password="tomcat" roles="manager-gui,admin-gui"/>
          </tomcat-users> #→在此行前加入上面三行
          [root@tomcat ~]# /application/tomcat/bin/shutdown.sh
          [root@tomcat ~]# /application/tomcat/bin/startup.sh

          3.3 Tomcat主配置文件Server.xml詳解

          3.3.1 server.xml組件類別

          • 頂級(jí)組件:位于整個(gè)配置的頂層,如server。
          • 容器類組件:可以包含其它組件的組件,如service、engine、host、context。
          • 連接器組件:連接用戶請(qǐng)求至tomcat,如connector。
          • 被嵌套類組件:位于一個(gè)容器當(dāng)中,不能包含其他組件,如Valve、logger。
          <server>
           <service>
           <connector />
           <engine>
           <host>
           <context></context>
           </host>
           <host>
           <context></context>
           </host>
           </engine>
           </service>
          </server>

          3.3.2 組件詳解

          • engine:核心容器組件,catalina引擎,負(fù)責(zé)通過(guò)connector接收用戶請(qǐng)求,并處理請(qǐng)求,將請(qǐng)求轉(zhuǎn)至對(duì)應(yīng)的虛擬主機(jī)host。
          • host:類似于httpd中的虛擬主機(jī),一般而言支持基于FQDN的虛擬主機(jī)。
          • context:定義一個(gè)應(yīng)用程序,是一個(gè)最內(nèi)層的容器類組件(不能再嵌套)。配置context的主要目的指定對(duì)應(yīng)對(duì)的webapp的根目錄,類似于httpd的alias,其還能為webapp指定額外的屬性,如部署方式等。
          • connector:接收用戶請(qǐng)求,類似于httpd的listen配置監(jiān)聽(tīng)端口的。
          • service(服務(wù)):將connector關(guān)聯(lián)至engine,因此一個(gè)service內(nèi)部可以有多個(gè)connector,但只能有一個(gè)引擎engine。service內(nèi)部有兩個(gè)connector,一個(gè)engine。因此,一般情況下一個(gè)server內(nèi)部只有一個(gè)service,一個(gè)service內(nèi)部只有一個(gè)engine,但一個(gè)service內(nèi)部可以有多個(gè)connector。
          • server:表示一個(gè)運(yùn)行于JVM中的tomcat實(shí)例。
          • Valve:閥門(mén),攔截請(qǐng)求并在將其轉(zhuǎn)至對(duì)應(yīng)的webapp前進(jìn)行某種處理操作,可以用于任何容器中,比如記錄日志(access log valve)、基于IP做訪問(wèn)控制(remote address filter valve)。
          • logger:日志記錄器,用于記錄組件內(nèi)部的狀態(tài)信息,可以用于除context外的任何容器中。
          • realm:可以用于任意容器類的組件中,關(guān)聯(lián)一個(gè)用戶認(rèn)證庫(kù),實(shí)現(xiàn)認(rèn)證和授權(quán)??梢躁P(guān)聯(lián)的認(rèn)證庫(kù)有兩種:UserDatabaseRealm、MemoryRealm和JDBCRealm。
          • UserDatabaseRealm:使用JNDI自定義的用戶認(rèn)證庫(kù)。
          • MemoryRealm:認(rèn)證信息定義在tomcat-users.xml中。
          • JDBCRealm:認(rèn)證信息定義在數(shù)據(jù)庫(kù)中,并通過(guò)JDBC連接至數(shù)據(jù)庫(kù)中查找認(rèn)證用戶。

          3.3.3 配置文件注釋

          <?xml version='1.0' encoding='utf-8'?>
          <!--
          <Server>元素代表整個(gè)容器,是Tomcat實(shí)例的頂層元素.由org.apache.catalina.Server接口來(lái)定義.它包含一個(gè)<Service>元素.并且它不能做為任何元素的子元素.
           port指定Tomcat監(jiān)聽(tīng)shutdown命令端口.終止服務(wù)器運(yùn)行時(shí),必須在Tomcat服務(wù)器所在的機(jī)器上發(fā)出shutdown命令.該屬性是必須的.
           shutdown指定終止Tomcat服務(wù)器運(yùn)行時(shí),發(fā)給Tomcat服務(wù)器的shutdown監(jiān)聽(tīng)端口的字符串.該屬性必須設(shè)置
          -->
          <Server port="8005" shutdown="SHUTDOWN">
           <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
           <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
           <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
           <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
           <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
           <GlobalNamingResources>
           <Resource name="UserDatabase" auth="Container"
           type="org.apache.catalina.UserDatabase"
           description="User database that can be updated and saved"
           factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
           pathname="conf/tomcat-users.xml" />
           </GlobalNamingResources>
           <!--service服務(wù)組件-->
           <Service name="Catalina">
           <!--
           connector:接收用戶請(qǐng)求,類似于httpd的listen配置監(jiān)聽(tīng)端口.
           port指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)端口監(jiān)聽(tīng)來(lái)自客戶端的請(qǐng)求。
           address:指定連接器監(jiān)聽(tīng)的地址,默認(rèn)為所有地址(即0.0.0.0)
           protocol連接器使用的協(xié)議,支持HTTP和AJP。AJP(Apache Jserv Protocol)專用于tomcat與apache建立通信的, 在httpd反向代理用戶請(qǐng)求至tomcat時(shí)使用(可見(jiàn)Nginx反向代理時(shí)不可用AJP協(xié)議)。
           minProcessors服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù)
           maxProcessors最大可以創(chuàng)建的處理請(qǐng)求的線程數(shù)
           enableLookups如果為true,則可以通過(guò)調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來(lái)得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢,而是返回其ip地址
           redirectPort指定服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào)
           acceptCount指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理
           connectionTimeout指定超時(shí)的時(shí)間數(shù)(以毫秒為單位)
           -->
           <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />
           <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
           <!--engine,核心容器組件,catalina引擎,負(fù)責(zé)通過(guò)connector接收用戶請(qǐng)求,并處理請(qǐng)求,將請(qǐng)求轉(zhuǎn)至對(duì)應(yīng)的虛擬主機(jī)host
           defaultHost指定缺省的處理請(qǐng)求的主機(jī)名,它至少與其中的一個(gè)host元素的name屬性值是一樣的
           -->
           <Engine name="Catalina" defaultHost="localhost">
           <!--Realm表示存放用戶名,密碼及role的數(shù)據(jù)庫(kù)-->
           <Realm className="org.apache.catalina.realm.LockOutRealm">
           <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
           resourceName="UserDatabase"/>
           </Realm>
           <!--
           host表示一個(gè)虛擬主機(jī)
           name指定主機(jī)名
           appBase應(yīng)用程序基本目錄,即存放應(yīng)用程序的目錄.一般為appBase="webapps" ,相對(duì)于CATALINA_HOME而言的,也可以寫(xiě)絕對(duì)路徑。
           unpackWARs如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓,否則不解壓,直接從WAR文件中運(yùn)行應(yīng)用程序
           autoDeploy:在tomcat啟動(dòng)時(shí),是否自動(dòng)部署。
           xmlValidation:是否啟動(dòng)xml的校驗(yàn)功能,一般xmlValidation="false"。
           xmlNamespaceAware:檢測(cè)名稱空間,一般xmlNamespaceAware="false"。
           -->
           <Host name="localhost" appBase="webapps"
           unpackWARs="true" autoDeploy="true">
           <!--
           Context表示一個(gè)web應(yīng)用程序,通常為WAR文件
           docBase應(yīng)用程序的路徑或者是WAR文件存放的路徑,也可以使用相對(duì)路徑,起始路徑為此Context所屬Host中appBase定義的路徑。
           path表示此web應(yīng)用程序的url的前綴,這樣請(qǐng)求的url為http://localhost:8080/path/****
           reloadable這個(gè)屬性非常重要,如果為true,則tomcat會(huì)自動(dòng)檢測(cè)應(yīng)用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動(dòng)裝載新的應(yīng)用程序,可以在不重啟tomcat的情況下改變應(yīng)用程序
           -->
           <Context path="" docBase="" debug=""/>
           <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="localhost_access_log" suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b" />
           </Host>
           </Engine>
           </Service>
          </Server>

          4. WEB站點(diǎn)部署

          上線的代碼有兩種方式,第一種方式是直接將程序目錄放在webapps目錄下面,這種方式大家已經(jīng)明白了,就不多說(shuō)了。第二種方式是使用開(kāi)發(fā)工具將程序打包成war包,然后上傳到webapps目錄下面。下面讓我們見(jiàn)識(shí)一下這種方式。

          4.1 使用war包部署web站點(diǎn)

          [root@tomcat webapps]# pwd
          /application/tomcat/webapps
          [root@tomcat webapps]# rz #→上傳memtest.war,此文件也在上面的百度網(wǎng)盤(pán)里
          [root@tomcat webapps]# ls
          docs examples host-manager manager memtest memtest.war ROOT

          瀏覽器訪問(wèn):http://10.0.0.3:8080/memtest/meminfo.jsp

          4.2 自定義默認(rèn)網(wǎng)站目錄

          上面訪問(wèn)的網(wǎng)址為http://10.0.0.3:8080/memtest/meminfo.jsp 現(xiàn)在我想訪問(wèn)格式為http://10.0.0.3:8080/meminfo.jsp 怎么破?

          方法一

          將meminfo.jsp或其他程序放在tomcat/webapps/ROOT目錄下即可。因?yàn)槟J(rèn)網(wǎng)站根目錄為tomcat/webapps/ROOT

          方法二

          [root@tomcat ~]# vim /application/tomcat/conf/server.xml
           <Host name="localhost" appBase="webapps"
           unpackWARs="true" autoDeploy="true">
           <Context path="" docBase="/application/tomcat/webapps/memtest" debug="0" reloadable="false" crossContext="true"/>
          [root@tomcat ~]# /application/tomcat/bin/shutdown.sh
          [root@tomcat ~]# /application/tomcat/bin/startup.sh

          5. Tomcat多實(shí)例及集群架構(gòu)

          5.1 Tomcat多實(shí)例

          5.1.1 復(fù)制Tomcat目錄

          [root@tomcat ~]# cd /application/
          [root@tomcat application]# cp -a apache-tomcat-8.0.27 tomcat8_1
          [root@tomcat application]# cp -a apache-tomcat-8.0.27 tomcat8_2

          5.1.2 修改配置文件

          [root@tomcat application]# mkdir -p /data/www/www/ROOT
          [root@tomcat application]# cp /application/tomcat/webapps/memtest/meminfo.jsp /data/www/www/ROOT/
          [root@tomcat ~]# sed -i '22s#8005#8011#;69s#8080#8081#;123s#appBase=".*"# appBase="/data/www/www"#' /application/tomcat8_1/conf/server.xml
          [root@tomcat ~]# sed -i '22s#8005#8012#;69s#8080#8082#;123s#appBase=".*"# appBase="/data/www/www"#' /application/tomcat8_2/conf/server.xml
          [root@tomcat ~]# diff /application/tomcat/conf/server.xml /application/tomcat8_1/conf/server.xml 
          22c22
          < <Server port="8005" shutdown="SHUTDOWN">
          ---
          > <Server port="8011" shutdown="SHUTDOWN">
          69c69
          < <Connector port="8080" protocol="HTTP/1.1"
          ---
          > <Connector port="8081" protocol="HTTP/1.1"
          123c123
          < <Host name="localhost" appBase="/application/tomcat/webapps/memtest"
          ---
          > <Host name="localhost" appBase="/data/www/www"
          [root@tomcat ~]# diff /application/tomcat/conf/server.xml /application/tomcat8_2/conf/server.xml
          22c22
          < <Server port="8005" shutdown="SHUTDOWN">
          ---
          > <Server port="8012" shutdown="SHUTDOWN">
          69c69
          < <Connector port="8080" protocol="HTTP/1.1"
          ---
          > <Connector port="8082" protocol="HTTP/1.1"
          123c123
          < <Host name="localhost" appBase="/application/tomcat/webapps/memtest"
          ---
          > <Host name="localhost" appBase="/data/www/www"

          5.1.3 啟動(dòng)多實(shí)例

          for i in {1..2};do /application/tomcat8_$i/bin/startup.sh;done
          netstat -tunlp|grep java

          瀏覽器可以分別訪問(wèn)http://10.0.0.3:8081/meminfo.jsp 和 http://10.0.0.3:8082/meminfo.jsp

          5.2 Tomcat集群

          使用nginx+Tomcat反向代理集群

          [root@tomcat ~]# vim /application/nginx/conf/nginx.conf
           upstream web_pools {
           server 127.0.0.1:8081;
           server 127.0.0.1:8082;
           }
           server {
           listen 80;
           server_name localhost;
           location / {
           root html;
           index index.jsp index.html index.htm;
           proxy_pass http://web_pools;
           }
           }
          [root@tomcat ~]# /application/nginx/sbin/nginx -t
          [root@tomcat ~]# /application/nginx/sbin/nginx

          瀏覽器可以訪問(wèn)http://10.0.0.3/meminfo.jsp

          6. Tomcat監(jiān)控

          企業(yè)案例:Linux下java/http進(jìn)程高解決案例

          生產(chǎn)環(huán)境下某臺(tái)tomcat7服務(wù)器,在剛發(fā)布時(shí)的時(shí)候一切都很正常,在運(yùn)行一段時(shí)間后就出現(xiàn)CPU占用很高的問(wèn)題,基本上是負(fù)載一天比一天高。請(qǐng)搞定!

          7. Tomcat安全優(yōu)化和性能優(yōu)化

          7.1 安全優(yōu)化

          • 降權(quán)啟動(dòng)
          • telnet管理端口保護(hù)
          • ajp連接端口保護(hù)
          • 禁用管理端

          7.2 性能優(yōu)化

          7.2.1 屏蔽dns查詢enableLookups="false"

           <Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="6000" enableLookups="false" acceptCount="800"
           redirectPort="8443" />

          7.2.2 jvm調(diào)優(yōu)

          Tomcat最吃內(nèi)存,只要內(nèi)存足夠,這只貓就跑的很快。

          如果系統(tǒng)資源有限,那就需要進(jìn)行調(diào)優(yōu),提高資源使用率。

          優(yōu)化catalina.sh配置文件。在catalina.sh配置文件中添加以下代碼:
          JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m"
          server:一定要作為第一個(gè)參數(shù),在多個(gè)CPU時(shí)性能佳
          -Xms:初始堆內(nèi)存Heap大小,使用的最小內(nèi)存,cpu性能高時(shí)此值應(yīng)設(shè)的大一些
          -Xmx:初始堆內(nèi)存heap最大值,使用的最大內(nèi)存
          上面兩個(gè)值是分配JVM的最小和最大內(nèi)存,取決于硬件物理內(nèi)存的大小,建議均設(shè)為物理內(nèi)存的一半。
          -XX:PermSize:設(shè)定內(nèi)存的永久保存區(qū)域
          -XX:MaxPermSize:設(shè)定最大內(nèi)存的永久保存區(qū)域
          -XX:MaxNewSize:
          -Xss 15120 這使得JBoss每增加一個(gè)線程(thread)就會(huì)立即消耗15M內(nèi)存,而最佳值應(yīng)該是128K,默認(rèn)值好像是512k.
          +XX:AggressiveHeap 會(huì)使得 Xms沒(méi)有意義。這個(gè)參數(shù)讓jvm忽略Xmx參數(shù),瘋狂地吃完一個(gè)G物理內(nèi)存,再吃盡一個(gè)G的swap。
          -Xss:每個(gè)線程的Stack大小
          -verbose:gc 現(xiàn)實(shí)垃圾收集信息
          -Xloggc:gc.log 指定垃圾收集日志文件
          -Xmn:young generation的heap大小,一般設(shè)置為Xmx的3、4分之一
          -XX:+UseParNewGC :縮短minor收集的時(shí)間

          主站蜘蛛池模板: 日韩电影一区二区三区| 好爽毛片一区二区三区四| 成人区人妻精品一区二区不卡视频| 国产在线观看精品一区二区三区91| 一级特黄性色生活片一区二区 | 国产人妖视频一区二区破除| 日韩内射美女人妻一区二区三区| www.亚洲一区| 天天看高清无码一区二区三区 | 久久精品午夜一区二区福利| 91福利国产在线观看一区二区| 国产麻豆剧果冻传媒一区| 无码中文人妻在线一区二区三区| 中文字幕精品一区二区日本| 少妇精品久久久一区二区三区| 精品少妇一区二区三区视频| 夜夜添无码试看一区二区三区| 中文字幕一区在线观看| 亚州国产AV一区二区三区伊在| 一区二区高清视频在线观看| 无码精品久久一区二区三区 | 久久一区二区三区99| 一区二区三区四区无限乱码| 日本丰满少妇一区二区三区| 四虎精品亚洲一区二区三区| 国产一区二区精品在线观看| 精品在线视频一区| 中文字幕一区二区三区精华液| 久久精品国产一区二区三区| 国产区精品一区二区不卡中文| 亚洲一区二区三区无码影院| 天堂Aⅴ无码一区二区三区| 熟女少妇丰满一区二区| 一区二区三区四区视频| 亚洲熟妇无码一区二区三区| 性盈盈影院免费视频观看在线一区| 国产精品亚洲专区一区| 99久久精品国产免看国产一区| 精品久久一区二区三区| 国产一区二区三区影院| 精品女同一区二区三区免费播放|