Tomcat8009端口與AJP13協(xié)議

最近關(guān)于Tomcat AJP協(xié)議漏洞的問題比較火爆又跛,相信好多人都不太了解AJP是怎么一回事傲武,在這里我也是在網(wǎng)上搜集了一些資料币厕,在這里匯總一下

Tomcat最主要的功能是提供Servlet/JSP容器甘畅,盡管它也可以作為獨(dú)立的Java Web服務(wù)器埂蕊,它在對靜態(tài)資源(如HTML文件或圖像文件)的處理速度,以及提供的Web服務(wù)器管理功能方面都不如其他專業(yè)的HTTP服務(wù)器疏唾,如IIS和Apache服務(wù)器蓄氧。

因此在實(shí)際應(yīng)用中,常常把Tomcat與其他HTTP服務(wù)器集成槐脏。對于不支持Servlet/JSP的HTTP服務(wù)器喉童,可以通過Tomcat服務(wù)器來運(yùn)行Servlet/JSP組件。

當(dāng)Tomcat與其他HTTP服務(wù)器集成時顿天,Tomcat服務(wù)器的工作模式通常為進(jìn)程外的Servlet容器堂氯,Tomcat服務(wù)器與其他HTTP服務(wù)器之間通過專門的插件來通信。關(guān)于Tomcat服務(wù)器的工作模式的概念可以參考本書1.4節(jié)牌废。

本章首先討論Tomcat與HTTP服務(wù)器集成的一般原理咽白,然后介紹Tomcat與Apache以及IIS集成的詳細(xì)步驟。

一鸟缕、 Tomcat與HTTP服務(wù)器集成的原理

Tomcat服務(wù)器通過Connector連接器組件與客戶程序建立連接晶框,Connector組件負(fù)責(zé)接收客戶的請求,以及把Tomcat服務(wù)器的響應(yīng)結(jié)果發(fā)送給客戶懂从。默認(rèn)情況下授段,Tomcat在server.xml中配置了兩種連接器:

<!-- Define a non-SSL Coyote HTTP/1.1
  Connector on port 8080 -->
  <Connector port="8080"
  maxThreads="150"
  minSpareThreads="25"
  maxSpareThreads="75"
  enableLookups="false"
  redirectPort="8443"
  acceptCount="100"
  debug="0"
  connectionTimeout="20000"
  disableUploadTimeout="true" />

  <!-- Define a Coyote/JK2 AJP 1.3
  Connector on port 8009 -->
  <Connector port="8009"
  enableLookups="false"
  redirectPort="8443" debug="0"
  protocol="AJP/1.3" />

第一個連接器監(jiān)聽8080端口,負(fù)責(zé)建立HTTP連接莫绣。在通過瀏覽器訪問Tomcat服務(wù)器的Web應(yīng)用時畴蒲,使用的就是這個連接器。

第二個連接器監(jiān)聽8009端口对室,負(fù)責(zé)和其他的HTTP服務(wù)器建立連接。在把Tomcat與其他HTTP服務(wù)器集成時咖祭,就需要用到這個連接器掩宜。

Web客戶訪問Tomcat服務(wù)器上JSP組件的兩種方式如圖所示。

圖22-1 Web客戶訪問Tomcat服務(wù)器上的JSP組件的兩種方式

在圖22-1中么翰,Web客戶1直接訪問Tomcat服務(wù)器上的JSP組件牺汤,他訪問的URL為http://localhost:8080/index.jsp。Web客戶2通過HTTP服務(wù)器訪問Tomcat服務(wù)器上的JSP組件浩嫌。假定HTTP服務(wù)器使用的HTTP端口為默認(rèn)的80端口檐迟,那么Web客戶2訪問的URL為http://localhost:80/index.jsp 或者 http://localhost/index.jsp补胚。

下面,介紹Tomcat與HTTP服務(wù)器之間是如何通信的追迟。

二溶其、JK插件

Tomcat提供了專門的JK插件來負(fù)責(zé)Tomcat和HTTP服務(wù)器的通信。應(yīng)該把JK插件安置在對方的HTTP服務(wù)器上敦间。當(dāng)HTTP服務(wù)器接收到客戶請求時瓶逃,它會通過JK插件來過濾URL,JK插件根據(jù)預(yù)先配置好的URL映射信息廓块,決定是否要把客戶請求轉(zhuǎn)發(fā)給Tomcat服務(wù)器處理厢绝。

假定在預(yù)先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服務(wù)器來處理带猴,那么在圖22-1的例子中昔汉,JK插件將把客戶請求轉(zhuǎn)發(fā)給Tomcat服務(wù)器,Tomcat服務(wù)器于是運(yùn)行index.jsp拴清,然后把響應(yīng)結(jié)果傳給HTTP服務(wù)器挤庇,HTTP服務(wù)器再把響應(yīng)結(jié)果傳給Web客戶2。

對于不同的HTTP服務(wù)器贷掖,Tomcat提供了不同的JK插件的實(shí)現(xiàn)模塊嫡秕。本章將用到以下JK插件:

與Windows下的Apache HTTP服務(wù)器集成:mod_jk_2.0.46.dll

與Linux(RedHet)下的Apache HTTP服務(wù)器集成:mod_jk.so-ap2.0.46-rh72..46-rh72

與IIS服務(wù)器集成:isapi_redirect.dll

總結(jié)理解(重要)

? 關(guān)于這個協(xié)議,一直不太明白苹威,網(wǎng)上的博客講的也都是千篇一律昆咽。 都說ajp協(xié)議是tomcat為了動靜資源處理分離時,通過該協(xié)議可以將css牙甫、js等靜態(tài)資源請求轉(zhuǎn)發(fā)到Apache的http服務(wù)器處理掷酗,提高并發(fā)量。但是在優(yōu)化tomcat時窟哺,沒有用到Apache服務(wù)器泻轰,則需要將其禁用。 那么問題來了且轨,如果前端用的是Nginx(配置的端口是80)直接轉(zhuǎn)發(fā)到tomcat8080端口浮声,并沒有通過ajp協(xié)議的8009端口吧,那么禁用掉這個配置為何能提高tomcat性能呢旋奢?

?
? ajp13是一個二進(jìn)制的TCP傳輸協(xié)議泳挥,相比HTTP這種純文本的協(xié)議來說,效率和性能更高至朗,也做了很多優(yōu)化屉符。顯然,瀏覽器并不能直接支持AJP13協(xié)議,只支持HTTP協(xié)議矗钟。所以實(shí)際情況是唆香,通過Apache的proxy_ajp模塊進(jìn)行反向代理,暴露成http協(xié)議給客戶端訪問吨艇。所以這么來看實(shí)際跟動靜分離沒一毛錢關(guān)系躬它,你如果沒做動靜分離的設(shè)置,那么單純反向代理AJP13協(xié)議也沒太大的意義秸应。

? 其他支持AJP協(xié)議的代理服務(wù)器當(dāng)然也可以用這種做法虑凛。但是實(shí)際情況是,支持AJP代理的服務(wù)器非常少软啼,比如目前很火爆的Nginx就沒這個模塊桑谍。因此tomcat的配置大部分都是關(guān)閉AJP協(xié)議端口的,因為除了Apache之外別的http server幾乎都不能反代AJP13協(xié)議祸挪,自然就沒太大用處了锣披。

原文參考:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市贿条,隨后出現(xiàn)的幾起案子雹仿,更是在濱河造成了極大的恐慌,老刑警劉巖整以,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胧辽,死亡現(xiàn)場離奇詭異,居然都是意外死亡公黑,警方通過查閱死者的電腦和手機(jī)邑商,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凡蚜,“玉大人人断,你說我怎么就攤上這事〕” “怎么了恶迈?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵鹅髓,是天一觀的道長近顷。 經(jīng)常有香客問我,道長疚漆,這世上最難降的妖魔是什么枣抱? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任熔吗,我火速辦了婚禮,結(jié)果婚禮上佳晶,老公的妹妹穿的比我還像新娘。我一直安慰自己讼载,他們只是感情好轿秧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布中跌。 她就那樣靜靜地躺著,像睡著了一般菇篡。 火紅的嫁衣襯著肌膚如雪漩符。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天驱还,我揣著相機(jī)與錄音嗜暴,去河邊找鬼。 笑死议蟆,一個胖子當(dāng)著我的面吹牛闷沥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播咐容,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼舆逃,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了戳粒?” 一聲冷哼從身側(cè)響起路狮,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蔚约,沒想到半個月后奄妨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡苹祟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年砸抛,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片苔咪。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锰悼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出团赏,到底是詐尸還是另有隱情箕般,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布舔清,位于F島的核電站丝里,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏体谒。R本人自食惡果不足惜杯聚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望抒痒。 院中可真熱鬧幌绍,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至伪冰,卻和暖如春誓酒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贮聂。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工靠柑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人吓懈。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓歼冰,卻偏偏與公主長得像,于是被迫代替她去往敵國和親骄瓣。 傳聞我的和親對象是個殘疾皇子停巷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1、Nginx+Keepalived實(shí)現(xiàn)站點(diǎn)高可用 linux cluster類型 LB:nginx負(fù)載榕栏,varn...
    stephe_c閱讀 229評論 0 0
  • 一畔勤、JDK JDK是 Java語言的軟件開發(fā)工具包,主要用于移動設(shè)備扒磁、嵌入式設(shè)備上的java應(yīng)用程序庆揪。JDK是整個...
    任總閱讀 708評論 0 0
  • Apache 與 Tomcat 配置 Apache 配置(Linux) 安裝sudo apt-get instal...
    wswenyue閱讀 4,061評論 0 7
  • 轉(zhuǎn)自陳明乾的博客,可能有一定更新妨托。 轉(zhuǎn)原文聲明:原創(chuàng)作品缸榛,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章 原始出處 兰伤、...
    C86guli閱讀 4,684評論 6 72
  • 夜鶯2517閱讀 127,720評論 1 9