大名鼎鼎的應用伺服器tomcat相信所有人都知道,今天來扒開tomcat這層神秘的面紗
首先看看tomcat的架構設計
server:指tomcat本身
從上圖看,server是最外層元素,在service中通過不同的connector來連線engine。engine中包括多個host,而host又可以配置多個context。
1.server:該元素是server.xml中最重要的元素,他代表了整個jvm,也代表了tomcat伺服器,啟動後將在埠8005出等待關閉命令,如果收到「shutdown」字串,則關閉伺服器
在server.xml**如下:…
2. service:該元素包含乙個engine元素以及乙個或多個connector元素。tomcat安裝後service預設的名稱為:catalina,此外還可以配置乙個與apache聯合的service
在server.xml**如下:…
… catalina處理所有直接從tomcat伺服器接收的web請求
apache處理所有有apache伺服器**過來的web請求
3. connector:表示客戶端和service之間的鏈結。connector的主要功能是接受、響應使用者請求。常用的connector有http/1.1 connector和ajp connector,ajp connector主要使用ajp協議和web connector通訊,通常用於集群中。
http/1.1 connector的例項監聽在使用者配置的埠上,當應用伺服器啟動時,http/1.1 connector負責建立若干執行緒,用於處理使用者請求,建立的執行緒數目取決於使用者配置的minthreads值,預設為5,當有更多的使用者請求到來時,http/1.1 connector將會建立更多的執行緒用於處理請求,建立執行緒的最大值由maxthreads定義,預設值為20,當所有的執行緒都在忙於處理使用者請求時,新到來的請求將會放入http/1.1 connector建立的socket佇列中,佇列的長度由
acceptcount
屬性定義,當等待佇列也被占用滿了,新來的使用者請求將會收到connection refused錯誤。
3.1.http/1.1 connector: 會建立處理客戶端請求的執行緒池,下限minprocessors,上限 maxprocessors屬性中配置
3.1.1.non-ssl http connector:非安全的http聯結器,能夠執行servlet和jsp,監聽埠8080
3.1.2.ssl http connector:安全的http聯結器,採用rsa加密,監聽埠8443
3.1.3.prox http connector:**http聯結器,監聽埠8082
3.2.jk 2 connector:和其他web connector通過ajp協議通訊。可以將tomcat和apache整合,使用apache處理靜態檔案,支援均衡負載。
在server.xml**如下:
connector常用屬性 屬性
聯結器解釋
預設值必有
呼叫request.getremotehost()方法時獲取到客戶端的機器
true 是
如果connector的配置是支援非ssl的請求,當乙個ssl請求到來時,伺服器會自動的將請求重定位到redirectport。
8443 是
等待佇列的長度,預設值是10。
100
否maxthreads
用於處理使用者請求的最大執行緒數20
否port
監聽埠…
是debug
輸出日誌,數字越大,日誌越詳細0
否3. engine:每個service只能有乙個engine,處理同乙個service的所有connector接收到的客戶請求。
在server.xml**如下:…
engine重要配置屬性:
jvmroute:指定名字是apache認識的唯一表示,使得在集群中他們的的session是共享的
4. host:乙個engine可以包含多個host,每個host代表乙個虛擬主機,他包含乙個或多個web應用。
在server.xml **如下
host常用屬性:
alias:指定虛擬主機別名,可以指定多個別名
**如下
www.mycompany.com
>
www.company.com
>
則可以通過localhost、www.mycompany.com、www.company.com訪問該虛擬主機下的web應用,為了使這個策略生效,所有網域名稱必須在dns伺服器等級,並指向執行catalina例項的同乙個主機
5. context:表示乙個web應用
context常用屬性:
path:指定訪問web的url入口,寫作」/myweb」,這樣的請求url為:http://localhost:8080/myweb/***
,預設為」」,既可以不需要
docbase:應用程式的路徑,可以使絕對路徑,預設「root「
6. (巢狀元件)valve:管道過濾器
a) 訪問日誌valve:accesslogvalve
**如下:
主要屬性:
directory:日誌儲存路徑
prefix:log檔案字首,如access_log.
suffix:log檔案字尾,如.txt
pattern:日誌格式
將發起請求的客戶端的ip位址和乙個或多個正規表示式進行比較,以決定或拒絕這個請求
**如下:
c) 單次登入valve:singlesignonvalve
如果希望使用者可以登入到虛擬主機中的任意乙個web應用,而且登入以後所有其他的web應用都能使用使用者的身份(即不需要重新登入),就可以使用單次登入
8.(巢狀元件)listener
用於建立乙個lifecyclelistener物件,監視所在容器的建立和銷毀。可以出現在server、engine、host、context中
**如下
9.(巢狀元件)cluster
未host配置集群服務,以提高更高的服務效能,他可以出現在host元素中、
小結1. 頂層元素
a) server
b) service:包含多個connector和乙個engine
2. 聯結器元素
a) http connector:tomcat服務聯結器
b) jk connector:與apache等外部伺服器連線的聯結器
3. 容器元素
a) engine:包含多個host
b) host:包含多個context
c) context:web應用配置容器
4. 巢狀元件
a) logger:為server、engine、host、context提供日誌功能
b) valve:為engine、host、context提供過濾功能
c) listener:為server、engine、host、context提供監聽功能
d) cluster:為host提供集群功能
應用伺服器安裝
1.安裝sql server 2008 r2 native client,注意區分cpu是32位還是64位的 2.copy xe2的midas到c windows system32 低版本的midas.dll會報錯 invalid package 3.命令列執行 regsvr32 midas.dll...
阿里輕量應用伺服器搭建Tomcat
一 購買伺服器 這裡我糊里糊塗的買了輕量級應用伺服器,然後花費了大量的時間搭建了乙個tomcat,中間也是各種坑,這裡就分享一下,希望能幫助到後來人吧。這裡伺服器的系統為centos7 二 安裝jdk linux centos 7 jdk 1.7 安裝與配置 三 安裝tomcat 2 解壓 tar ...
應用伺服器負載均衡
應用伺服器負載均衡 一.負載均衡演算法 二.資料傳送到真實伺服器方式 找 算 伺服器 負載均衡演算法 1.輪訓 這個沒什麼可說,伺服器列表乙個乙個迴圈過來。3.隨即 本來就乙個均衡。4.最小請求 看伺服器那個請求數最少,應該是最均衡的方式,也可以理解能力大責任大。資料傳送到真實伺服器方式 1.htt...