1. 程式人生 > >解析Tomcat內部結構和請求過程

解析Tomcat內部結構和請求過程

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  <Listener className="org.apache.catalina.startup.VersionLoggerListener" />
  <!-- Security listener. Documentation at /docs/config/listeners.html
  <Listener className="org.apache.catalina.security.SecurityListener" />
  -->
  <!--APR library loader. Documentation at /docs/apr.html -->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  <!--Initialize Jasper prior to webapps are loaded. Documentation at /docs/jasper-howto.html -->
  <Listener className="org.apache.catalina.core.JasperListener" />
  <!-- Prevent memory leaks due to use of particular java/javax APIs-->
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
  <!-- Global JNDI resources
       Documentation at /docs/jndi-resources-howto.html
  -->
  <GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <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>
  <!-- A "Service" is a collection of one or more "Connectors" that share
       a single "Container" Note:  A "Service" is not itself a "Container",
       so you may not define subcomponents such as "Valves" at this level.
       Documentation at /docs/config/service.html
   -->
  <Service name="Catalina">
    <!--The connectors can use a shared executor, you can define one or more named thread pools-->
    <!--
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
        maxThreads="150" minSpareThreads="4"/>
    -->
    <!-- A "Connector" represents an endpoint by which requests are received
         and responses are returned. Documentation at :
         Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
         Java AJP  Connector: /docs/config/ajp.html
         APR (HTTP/AJP) Connector: /docs/apr.html
         Define a non-SSL HTTP/1.1 Connector on port 8080
    -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <!-- A "Connector" using the shared thread pool-->
    <!--
    <Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    -->
    <!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the BIO implementation that requires the JSSE
         style configuration. When using the APR/native implementation, the
         OpenSSL style configuration is required as described in the APR/native
         documentation -->
    <!--
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"
               maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS" />
    -->
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <!-- An Engine represents the entry point (within Catalina) that processes
         every request.  The Engine implementation for Tomcat stand alone
         analyzes the HTTP headers included with the request, and passes them
         on to the appropriate Host (virtual host).
         Documentation at /docs/config/engine.html -->
    <!-- You should set jvmRoute to support load-balancing via AJP ie :
    <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
    -->
    <Engine name="Catalina" defaultHost="localhost">
      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->
      <!--
      <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
      -->
      <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <!-- This Realm uses the UserDatabase configured in the global JNDI
             resources under the key "UserDatabase".  Any edits
             that are performed against this UserDatabase are immediately
             available for use by the Realm.  -->
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->
        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

相關推薦

解析Tomcat內部結構請求過程

<?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.Versi

Tomcat內部結構請求原理(轉)

周期 成了 authent 代碼 部分 min 它的 war ace Tomcat Tomcat是一個JSP/Servlet容器。其作為Servlet容器,有三種工作模式:獨立的Servlet容器、進程內的Servlet容器和進程外的Servlet容器。 Tomcat的組織

Tomcat內部結構、工作原理、工作模式執行模式

##Tomcat的內部結構 Tomcat是一個基於元件的伺服器,它的構成元件都是可配置的,其中最外層的是Catalina servlet容器,其他元件按照一定的格式要求配置在這個頂層容器中。Tomcat的各種元件都是在Tomcat安裝目錄下的/conf/ser

Tomcat基本結構配置文件結構

tomcat 概念 配置文件00x01 tomcat簡介 Tomcat: Servlet and JSP APIs, JNDI and JMX APIs. Tomcat不是一個完

linux內核結構啟動過程

LINUX 內核 linux內核結構和啟動過程(以下內容來自教學課件)一、Linux內核結構arch與體系結構相關的代碼。對應於每個支持的體系結構,有一個相應的子目錄如x86、arm等與之對應,相應目錄下有對應的芯片與之對應drivers設備驅動代碼,占整個內核代碼量的一半以上,裏面的每個子目錄對應一

tomcat的一次請求過程

res 其中 請求 gin 如果 路徑名 con https 默認 Tomcat處理一個HTTP請求的過程 假設來自客戶的請求為: http://tomcat.com/yy/index.jsp 首先 dns 解析tomcat.com機器,一般是ng服務器ip地址 然後 ng

深度學習:深度信念網路(DBN)結構訓練過程

深度信念網路在處理維數比較多的資料時,可以起到壓縮資料維度的作用。其經典結構為: DBN由多個RBM堆疊而成,訓練過程由預訓練和微調構成 深度信念網路訓練步驟: (1)預訓練:分別單獨無監督的訓練每一層RBM網路,確保特徵向量對映到不同特徵空間,都儘可能的保留特徵資訊;它通過一個非監督

探究Visual Studio生成的.vs資料夾內部結構作用

https://shiyousan.com/post/636441130259624698 在某個契機的引發下,對VS解決方案中自動生成的.vs資料夾產生了興趣,以前總對這個資料夾不怎麼上心,最近正好遇到點情況來搞懂.vs目錄究竟有什麼作用。 這裡直接先將我摸索出的結果貼出來,文章後面會一

vue 原始碼學習(一) 目錄結構構建過程簡介

Flow vue框架使用了Flow作為型別檢查,來保證專案的可讀性和維護性。vue.js的主目錄下有Flow的配置.flowconfig檔案,還有flow目錄,指定了各種自定義型別。 在學習原始碼前可以先看下Flow的語法 官方文件 目錄結構 vue.js原始碼主要在src下 src ├── com

vue 源碼學習(一) 目錄結構構建過程簡介

編譯 需求 類型檢查 fig文件 key 不同 time enc 來看 Flow vue框架使用了Flow作為類型檢查,來保證項目的可讀性和維護性。vue.js的主目錄下有Flow的配置.flowconfig文件,還有flow目錄,指定了各種自定義類型。 在學習源碼前可以先

APK檔案結構安裝過程

APK檔案結構 Android應用是用Java編寫的,利用Android SDK編譯程式碼,並且把所有的資料和資原始檔打包成一個APK (Android Package)檔案,這是一個字尾名為.apk的壓縮檔案,APK檔案中包含了一個Android應用程式的所有內容,是

Bootloader的結構啟動過程

CPU上電後,會在某個地址開始執行,比如MIPS結構的CPU會從0xBFC00000取第一條指令,而ARM結構的CPU則從0x00000000開始,嵌入式開發板中,需要把儲存器件ROM或Flash等對映到這個地址。而Bootloader就存在這個地址的開始處,這

Curator原始碼解析(一)原始碼結構測試程式

Curator是Netflix開源的一套ZooKeeper客戶端框架. Netflix在使用ZooKeeper的過程中發現ZooKeeper自帶的客戶端太底層, 應用方在使用的時候需要自己處理很多事情, 於是在它的基礎上包裝了一下, 提供了一套更好用的客戶端框架. Net

HTTP請求過程-域名解析TCP三次握手建立連結

  我們在瀏覽器輸入http://www.baidu.com想要進入百度首頁,但是這是個域名,沒法準確定位到伺服器的位置,所以需要通過域名解析,把域名解析成對應的ip地址,然後通過ip地址查詢目的主機。整個訪問過程可以概括為: 域名解析 發起TCP三次握手建立連線 建立連線後發

tomcat 解析(四)-處理http請求過程

宣告:原始碼版本為Tomcat 6.0.35 前面的文章中介紹了Tomcat初始化的過程,本文將會介紹Tomcat對HTTP請求的處理的整體流程,更細節的。 在上一篇文章中,介紹到JIoEndpoint 中的內部類Acceptor用來接受Socket請求,

Tomcat目錄結構Tomcat Server處理一個http請求過程

1.Tomcat的結構概述 Tomcat伺服器是由一系列可配置的元件構成,其核心元件是Catalina Servlet容器,它是所有其他Tomcat元件的頂層容器。Tomcat的元件可以在< CATALINA_HOME>/conf/serv

Tomcat處理請求過程重要引數詳解

Tomcat處理使用者連線請求模式 BIO:阻塞模型 NIO:非阻塞模型 APR:高效能,可擴充套件的模式,Tomcat8版本預設模式 在使用tomcat時,經常會遇到連線數、執行緒數之類的配置問題,要真正理解這些概念,必須先了解Tomcat的聯結器(Connector)。在

tomcat原始碼解析第6課-一次http請求過程

目錄 1、啟動8080埠監聽http請求時序圖 2、啟動8080埠監聽http請求程式碼解析 3、http請求時序圖 4、http請求request和response的封裝 5、查詢自定義過濾器和servlet 6、自定義的過濾器和servlet呼叫 一、啟

瀏覽器的解析執行過程

們的 由於 繼續 動畫 table 就會 內嵌 cnblogs 內嵌腳本 當瀏覽器獲得一個html文件時,會“自上而下”加載,並在加載過程中進行解析渲染。 解析: 1. 瀏覽器會將HTML解析成一個DOM樹(display:none,visibility:hidden)。

Spring MVC體系結構處理請求控制器

基於 耦合 handle 邏輯 圖解 運用 ann 處理方式 設計   MVC設計模式在各種成熟框架中都得到了良好的運用,它將View,Controller,Model三層清晰地劃分開,搭建一個松耦合,高重用性,高可適用性的完美架構。   Spring MVC框架是經典的M