青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Dict.CN 在線詞典, 英語學習, 在線翻譯

學??嘧髦?,書山勤為徑

留下點回憶

常用鏈接

統計

積分與排名

Denoise

English study

Web技術

數據壓縮

一些連接

最新評論

Apache+Tomcat+AJP

介紹

大部分一開始接觸WEB服務器的人可能和我一樣對為什么有Apache又有Tomcat服務器感到奇怪(它們還都是Apache開發的呵呵),其實他們不是冗余的服務器,雖然他們都能對外提供WEB服務器,但總的來說還是各有側重點。下面做個簡單介紹。

 

1.       Apache是世界排名第一的Web服務器;在Apache基金會里其永遠被第一支持。而開源的Apache Tomcat也非常關注,由于開源,用戶最支持。

2.       Apache支持靜態頁面,Tomcat支持動態頁面(servlet, JSP);一般在使用Apache + Tomcat的配置下,Apache都是實現對JSP的轉發,交給Tomcat來處理。Apache可以支持PHP,但如果要支持JAVA,就需要Tomcat來處理。

3.       ApacheWeb服務器,Tomcat是應用(Java)服務器,它只是一個servlet容器,是Apache的擴展,但可以獨立于Apache運行;如果以獨立方式運行,功能與Apache等效,但對靜態頁面的處理不太理想。

通過上面分析,可以知道:

1.       Apache能有很好的靜態頁面處理能力,如果搭配Tomcat能同時支持靜態和動態頁面

2.       Tomcat能夠承擔性能要求較低的WEB應用。

負載均衡

 

為了提高整個系統的可用性和性能,常常會用到負載均衡,而ApacheTomcat經常聯合在一起來實現負載均衡技術。

主機Apache作為前段負載平衡服務器對用戶進行分配,后端不同的Tomcat服務器最終處理請求,其中根據側重點不同可以有兩種不同的配置。

1.       增加系統可用性

保證多臺Tomcat服務器之間會話的同步,確保任何一臺當機都不會影響系統的運行,從而提高系統的可用性。

2.       提高系統性能

在負責負載平衡的Apache主機上記錄每個請求的Session ID(這個ID是由Tomcat分配的)及回應SessionTomcat Server對應關系,在下一個請求到來時先判斷每個Session ID,如果有標識連接已經建立,那么轉到對應服務器;負責就是新的連接,根據每個后臺Tomcat服務器的狀態分配一個服務器并記錄Session ID.

如下圖:



Apache + Tomcat
配置

正如上面中看到的可以通過Apache +Tomcat來配置來達到較高WEB服務器同時,也能高正較高的可用性和系統性能。這些是通過ApacheTomcat之間的通訊來完成的。ApacheTomcat之間的通訊基本有三種方式:

1.       Mod_Jk

2.       HTTP_Proxy

3.       AJP_Proxy

這里主要介紹Mod_JK方式,其也是最流行的方式,并且官方的文檔也非常全。

Mod_JK

Mod_JKApache的一個模塊,其通過AJP協議實現ApacheTomcat之間的通訊,而Tomcat默認監聽AJP連接器的8009端口來接受AJP的連接請求;一般這些請求來自前端的Apache服務器。

由于Mod_JK已經被設計成Apache的一個模塊,因此可以通過一些相對簡單的配置就能達到ApacheTomcat之間通訊的目的;同樣包含負載均衡。

配置步驟

安裝

1.       安裝Apache HTTP服務器,從Apache官方網站下載;我安裝的是Apache2.0.64

2.       安裝Apache Tomcat,可以安裝在Apache同一個機器,也可以在其他的機器,版本要與Mod_JK匹配

3.       下載Mod_Jk;這里注意要與Apache Tomcat匹配。

配置

加在Mod_Jk

Mod_Jk是在Apache HTTP服務器上被加載的,需要將下載下來的Mod_Jk.so放到Apache/Modules目錄下,并修改httpd.conf,增加下面一行:

Include conf/mod_jk.conf

 

使用include命令包含mod_jk.conf,這個是我們自己添加的關于mod_jk的配置文件。

 

新建Mod_jk.conf,并添加如下內容:

#Load mod_jk module.

LoadModule jk_module modules/mod_jk.so

 

#Where to find workers.properties

JkWorkersFile conf/workers2.properties

JkMountFile conf/urimap.properties

 

#Where to put jk logs

JkLogFile logs/mod_jk.log

 

#Set the jk log level[debug/error/info]

JkLogLevel info

 

#Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

 

#JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

 

JkMount /* loadbalancer

 

上面包含了兩個properties文件,分別是workers2.propertiesurimap.properties

Workers2.properties用于說明Tomcat服務器的負載均衡配置方法,具體如下:#worker.list=loadbalancer

worker.list=loadbalancer,tomcat1,tomcat2  #server 列表

 

#define the first node

worker.tomcat1.port=8009

worker.tomcat1.host=10.224.70.57

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor=1

 

#define the first node

worker.tomcat2.port=8009

worker.tomcat2.host=10.224.70.57

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor=1

 

#Now we define the load-balancing behavior

worker.loadbalancer.type=lb

worker.loadbalancer.balance_workers=tomcat1, tomcat2

 

worker.loadbalancer.sticky_session=true

 

worker.loadbalancer.sticky_session_force=true

Mod_jk.conf中有JkMount /* loadbalancer,這個loadbalancer正好對應上面worker.list一行的loadbalancer。

另外tomcat1tomcat2是配置的后臺tomcat服務器;當然這里只有一臺服務器,所以兩個worker都是同樣的地址。lbfactor表示在負載均衡算法中采用的權重。

 

另外在urimap.properties文件中說明了哪些請求會轉交給Tomcat服務器,配置項為:

!/*.htm=loadbalancer

注意這里的表示*.htm的請求都到loadbalancer;這個loadbalancer是上文中的loadbalancer。

至此ApacheTomcat之間的負載均衡已經被配置好了。

 

運行時觀察

這里主要觀察sessionstickiness是如何被實現的;已經Apache服務器如何了解到關于Session ID相關的信息。
實際上對于負載均衡來說,如果上面的例子中你配置了兩個Tomcat,那么關閉sticky_session的情況下,每個Tomcat服務器將輪流收到請求。

 

其實在試驗的時候發現session IDTomcat服務器分配創建的,Apache服務器只是用來管理其與Tomcat服務器之間的關系;當然Apache服務器需要檢查每次請求中的Session ID。這個ID是由Tomcat分配的;Tomcat對于每個第一次請求的動態頁面都會生成JSESSIONID;而對于靜態頁面是不會生成JESSIONID的。

具體運行過程:

1.       Apache服務器接收到來自client的請求,檢查HTTP請求是否包含SESSIONID

2.       如果不包含,采用負載均衡算法選擇一個Tomcat服務器

3.       Apache服務器將這個client請求轉發到選定Tomcat服務器的8009端口,數據包的格式是AJP協議

4.       Tomcat解析AJP協議,生成SESSION ID并且取得響應,將結果發送給Apache服務器,這個是通過之前的8009連接過來的鏈接發送回去的。

5.       Apache服務器解析AJP包,并得到SESSION ID信息,并將其與對應的服務器(和會話)關聯起來。

6.       ApacheSESSION ID轉發給client

7.       ClientSession ID保存到Cookie中用于下次使用。

Packet No

Apache

Tomcat:8009

1

2:REQ:GET /index.jsp HTTP/1.1 à

 

2

 

ß2:RSP:send headers:200 OK

3

 

ß2:RSP:SEND BODY CHUNK

4

 

ß2:RSP:END RESPONSE

 

通常這個連接建立好了之后短時間是不會斷,不過這是可以通過參數來配置的。

在上面的包交互過程中:第2個包包含了SESSION ID的信息;內容類似于下面:

Set-Cookie..3JSESSIONID=955AAE2AA22B074BD1824395B6E4835A; Path=/...Content-Type...text/html...Content-Length...141.AB.....

AJPApache JServer Protocol

AJPv13協議是面向包的。WEB服務器和Servlet容器通過TCP連接來交互;為了節省SOCKET創建的昂貴代價,WEB服務器會嘗試維護一個永久TCP連接到servlet容器,并且在多個請求和響應周期過程會重用連接。

一旦一個連接被分配給特定的請求,在請求處理周期結束之前這個連接不能被重用;換句話說,請求不是連接多工的。這樣編碼比較簡單。

一旦連接被分配給特定的請求,基本請求信息(HTTP頭)以壓縮的個性(通常字符串會編碼為整數);如果有請求實體,會隨后立即發送。

這個時候,servlet容器已經準備好了處理請求并發送西面的信息回WEB服務器:

1.       SEND_HEADERS:發回瀏覽器的響應頭

2.       SEND_BODY_CHUNK:將實體發送給瀏覽器

3.       GET_BODY_CHUNK:獲取更多的請求數據,這些數據沒有被發送。

4.       END_RESPONSE:表示請求處理周期結束。

 

WEB服務器發送給Servlet容器的請求包括:

1.       轉發請求開始

2.       關閉

3.       Ping

4.       CPing

 

AJP13_FORWARD_REQUEST的格式

AJP13_FORWARD_REQUEST :=

    Magic:            (word)

    Length:           (word)

    prefix_code      (byte) 0x02 = JK_AJP13_FORWARD_REQUEST

    method           (byte)       HTTP請求方法的字節編碼

    protocol         (string)

    req_uri          (string)

    remote_addr      (string)

    remote_host      (string)

    server_name      (string)

    server_port      (integer)

    is_ssl           (boolean)

    num_headers      (integer)

    request_headers *(req_header_name req_header_value)

    attributes      *(attribut_name attribute_value)

    request_terminator (byte) OxFF

AJP13_SEND_HEADERS

AJP13_SEND_HEADERS :=
  prefix_code       4
  http_status_code  (integer)
  http_status_msg   (string)
  num_headers       (integer)
  response_headers *(res_header_name header_value)
 
更多信息,參見:http://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html#header_encoding

posted on 2011-07-18 17:12 笨笨 閱讀(11335) 評論(0)  編輯 收藏 引用 所屬分類: WEB技術

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲高清视频在线观看| 国产视频一区在线观看| 欧美亚洲成人精品| 欧美成人精品一区二区| 亚洲精品国产精品乱码不99按摩| 久久不射网站| 99亚洲一区二区| 欧美成人免费大片| 在线不卡中文字幕| 久久婷婷国产麻豆91天堂| 亚洲一区欧美二区| 国产精品久久久久久久久婷婷| 亚洲精品一区二区三区四区高清 | 亚洲桃色在线一区| 欧美激情一区二区三区不卡| 久久久久一区二区三区四区| 国产欧美在线视频| 亚洲欧美中文在线视频| 一本色道久久综合亚洲精品按摩 | 欧美激情综合五月色丁香| 激情久久一区| 久热re这里精品视频在线6| 欧美一区二区成人6969| 国产主播一区二区三区四区| 久久久精品性| 久久精品国产免费| 亚洲狠狠婷婷| 亚洲乱码日产精品bd| 国产精品videosex极品| 欧美在线观看视频一区二区三区| 性色av一区二区三区| 国产综合网站| 亚洲大片一区二区三区| 欧美成人中文字幕在线| 亚洲美女av电影| 日韩一区二区精品| 国产精品手机在线| 另类天堂av| 欧美激情精品久久久久久| 亚洲图片在线| 中文日韩在线视频| 欧美一区二区三区婷婷月色 | 亚洲黄色在线| 欧美激情一区二区三区在线| 中文精品视频一区二区在线观看| 亚洲自拍都市欧美小说| 精品不卡在线| 日韩午夜一区| 国产一级精品aaaaa看| 欧美va天堂va视频va在线| 欧美日韩国产精品一区| 欧美自拍丝袜亚洲| 久久99伊人| 最新高清无码专区| 国产精品mm| 欧美日韩不卡在线| 一区二区三区欧美成人| 亚洲视频在线观看免费| 国模私拍视频一区| 久久爱www久久做| 亚洲国产精品成人综合色在线婷婷 | 亚洲女爱视频在线| 老色鬼久久亚洲一区二区| 亚洲一区二区三区四区五区黄| 欧美一级久久久| 日韩午夜激情电影| 久久久久国产精品人| 在线日韩电影| 亚洲永久精品国产| 日韩视频在线一区| 久久免费国产精品| 久久av老司机精品网站导航| 欧美精品一区在线发布| 另类天堂视频在线观看| 国产精品亚洲成人| 日韩五码在线| 亚洲日本va午夜在线影院| 亚洲欧美日韩成人| 国产精品99久久99久久久二8| 久久九九免费视频| 欧美诱惑福利视频| 国产精品都在这里| 日韩视频在线观看| aa级大片欧美| 欧美极品欧美精品欧美视频| 欧美国产极速在线| 亚洲国内自拍| 欧美大片在线看免费观看| 免费成人高清视频| 亚洲第一黄网| 老司机67194精品线观看| 久久久青草青青国产亚洲免观| 国产精品色午夜在线观看| 一级日韩一区在线观看| 中文亚洲免费| 欧美新色视频| 亚洲一区二区精品视频| 午夜久久一区| 国产女人精品视频| 亚洲人成亚洲人成在线观看图片 | 亚洲精选视频在线| 久久人人爽人人爽爽久久| 久久久水蜜桃av免费网站| 国产日韩在线一区| 午夜一区不卡| 久久av一区二区| 国产自产v一区二区三区c| 午夜一级久久| 91久久在线| 国产精品区一区| 亚洲欧洲精品一区二区精品久久久| 久久精品成人一区二区三区| 久久久精品性| 在线日本高清免费不卡| 蜜桃av一区二区在线观看| 亚洲高清视频在线观看| 久久久91精品国产| 久久精品国产清自在天天线| 国产欧美日本一区二区三区| 亚洲欧美国产高清| 欧美一区91| 激情婷婷久久| 亚洲国产欧美一区二区三区同亚洲| 欧美二区在线播放| 亚洲色图综合久久| 国产日韩欧美三级| 麻豆成人91精品二区三区| 亚洲精品乱码| 欧美在线观看网址综合| 1024成人网色www| 欧美日韩精品一区二区三区| 亚洲欧美综合v| 亚洲电影免费| 欧美亚洲日本网站| 91久久在线观看| 悠悠资源网亚洲青| 亚洲乱码国产乱码精品精| 欧美精选一区| 宅男精品视频| 久久国产一区二区| 亚洲欧洲日本mm| 国产精品爽黄69| 欧美成年视频| 久久亚洲私人国产精品va媚药| 男人插女人欧美| 亚洲欧美一区二区三区极速播放| 在线观看视频亚洲| 国产精品你懂的在线| 美女视频黄a大片欧美| 午夜精品久久| 亚洲美女免费精品视频在线观看| 久久久久天天天天| 99xxxx成人网| 国产日韩精品一区二区浪潮av| 蜜桃久久精品一区二区| 亚洲免费网站| 亚洲精选久久| 亚洲福利视频三区| 久久婷婷麻豆| 国产亚洲欧美日韩精品| 欧美日韩一区二区三| 日韩亚洲欧美在线观看| 欧美视频精品在线观看| 精品va天堂亚洲国产| 欧美成人网在线| 久久久在线视频| 欧美亚洲系列| 亚洲欧美一区二区精品久久久| 日韩午夜精品| 亚洲欧洲精品一区二区| 欧美1区2区| 毛片基地黄久久久久久天堂| 一区二区三区高清不卡| 久久久噜噜噜久久久| 国产一区二区黄| 国产精品区一区二区三区| 欧美激情一区二区三区蜜桃视频| 久久久久久久999| 久久久美女艺术照精彩视频福利播放| 亚洲一区二区三区成人在线视频精品| 日韩视频在线一区二区三区| 亚洲激情小视频| 亚洲国产天堂久久国产91| 欧美电影在线免费观看网站| 久久综合狠狠综合久久综合88| 久久久久久久国产| 久久手机精品视频| 浪潮色综合久久天堂| 欧美 日韩 国产 一区| 欧美国产欧美亚州国产日韩mv天天看完整 | 欧美精品aa| 欧美日韩国产区| 欧美视频一二三区| 国产欧美精品一区aⅴ影院| 国产欧美 在线欧美| 国产一区视频网站| 在线日韩电影| 99riav久久精品riav| 欧美一区二区免费视频| 亚洲国产二区|