首先我們應(yīng)該對(duì)應(yīng)用服務(wù)器和web服務(wù)器有一個(gè)清晰的概念。所謂的應(yīng)用服務(wù)器,就是提供應(yīng)用的服務(wù)器,這里的應(yīng)用有很多,比如java應(yīng)用,ruby 應(yīng)用,或者 c#應(yīng)用。
那么什么是web服務(wù)器呢?就是提供了web功能的服務(wù)器,主要就是http服務(wù),包括圖片的下載,等等一系列和web相關(guān)的。
為什么我們不能直接使用應(yīng)用服務(wù)器?應(yīng)用服務(wù)器也提供了http服務(wù),比如tomcat。
那么我們從實(shí)際出發(fā)。當(dāng)你瀏覽一個(gè)網(wǎng)頁(yè)的時(shí)候,什么情況下你會(huì)覺(jué)得速度很慢?我們僅僅考慮頁(yè)面本身。那當(dāng)然是圖片越多顯示得越慢。
好吧,我們至少認(rèn)識(shí)到一點(diǎn),一些靜態(tài)資源,例如圖片,會(huì)嚴(yán)重影響頁(yè)面打開的速度。當(dāng)然,這僅僅是一個(gè)方面。
那么web服務(wù)器有什么用呢?web服務(wù)器一個(gè)優(yōu)點(diǎn)就是在處理靜態(tài)信息上。例如一些靜態(tài)的html,圖片,等等其他靜態(tài)的東西。
那為什么tomcat不能具備這些優(yōu)點(diǎn)?這個(gè)問(wèn)題我們可以換一個(gè)說(shuō)法:為什么會(huì)計(jì)不能做市場(chǎng)營(yíng)銷呢?
所以嘛,臣家要分工明確,應(yīng)用服務(wù)器就做好它該做的:如何解釋一個(gè)jsp,如何處理java文件等等,做好這一點(diǎn)就足夠了。而web服務(wù)器也做好它該做的:如何快速向?yàn)g覽器傳遞信息,如何快速地讓瀏覽器下載圖片。
那你又問(wèn)了,那為啥tomcat還提供一個(gè)http服務(wù)?那不是讓你開發(fā)方便嘛!千萬(wàn)別把tomcat的http服務(wù)當(dāng)成是一個(gè)web服務(wù)器。
說(shuō)了這么多,那么我們對(duì)應(yīng)用服務(wù)器和web服務(wù)器的整合也應(yīng)該心里有數(shù)了。就拿tomcat和iis整合來(lái)說(shuō)事吧!
我們到底想干什么呢?很明顯,我們想讓tomcat 處理對(duì) java應(yīng)用的請(qǐng)求,而iis應(yīng)該處理圖片,css 等等其他靜態(tài)資源的事情。
具體的細(xì)節(jié)不談了,無(wú)非就是配置 ispai_redirect 這個(gè)東東。因?yàn)槲覀冎饕f(shuō)的分工問(wèn)題,所以還是說(shuō)說(shuō)這個(gè) uriworkermap.properties 文件。
這個(gè)文件就是處理分工的用的。例如我定義成如下這個(gè)樣子:
/www.abc.com/eshop/*.do=ajp13
/www.abc.com/eshop/dwr/interface/*=ajp13
/www.abc.com/eshop/dwr/*=ajp13
/www.abc.com/eshop/js/*=ajp13
那么就告訴了 isapi_redirect , 以上4種請(qǐng)求,都交給tomcat處理。
那么其他的請(qǐng)求呢?當(dāng)然是交給 iis了。
如果我定義成這個(gè)樣子:
/* = ajp13
這下可慘了,iis被你浪費(fèi)了,就好像你招聘了一個(gè)會(huì)計(jì)和一個(gè)推銷的人員,但是讓會(huì)計(jì)干財(cái)務(wù)的活之外,還干了推銷。而推銷人員給閑置了。
至于 uriworkermap.properties 的詳細(xì)配置,可以參考 tomcat 網(wǎng)站,上面有詳細(xì)的講解。
兩種服務(wù)器的整合雖然不難,但是如果不明白其中的意義和原理,一旦項(xiàng)目配置有所變化,那就是沒(méi)有葫蘆就畫不出來(lái)瓢了。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |