Apache可以被配置為正向(forward)和反向(reverse)代理。
正向代理是一個位于客戶端和原始服務(wù)器(origin server)之間的服務(wù)器,為了從原始服務(wù)器取得內(nèi)容,客戶端向代理發(fā)送一個請求并指定目標(biāo)(原始服務(wù)器),然后代理向原始服務(wù)器轉(zhuǎn)交請求并將獲得的內(nèi)容返回給客戶端??蛻舳吮仨氁M(jìn)行一些特別的設(shè)置才能使用正向代理。
正向代理的典型用途是為在防火墻內(nèi)的局域網(wǎng)客戶端提供訪問Internet的途徑。正向代理還可以使用緩沖特性(由mod_cache提供)減少網(wǎng)絡(luò)使用率。
使用ProxyRequests指令即可激活正向代理。因?yàn)檎虼碓试S客戶端通過它訪問任意網(wǎng)站并且隱藏客戶端自身,因此你必須采取安全措施以確保僅為經(jīng)過授權(quán)的客戶端提供服務(wù)。
注意:在您沒有對服務(wù)器采取安全措施之前,請不要用ProxyRequests啟用代理。一個開放的代理服務(wù)器不僅對您的網(wǎng)絡(luò)有威脅,對整個因特網(wǎng)來說也同樣如此。
反向代理正好相反,對于客戶端而言它就像是原始服務(wù)器,并且客戶端不需要進(jìn)行任何特別的設(shè)置。客戶端向反向代理的命名空間(name-space)中的內(nèi)容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務(wù)器)轉(zhuǎn)交請求,并將獲得的內(nèi)容返回給客戶端,就像這些內(nèi)容原本就是它自己的一樣。
反向代理的典型用途是將防火墻后面的服務(wù)器提供給Internet用戶訪問。反向代理還可以為后端的多臺服務(wù)器提供負(fù)載平衡,或?yàn)楹蠖溯^慢的服務(wù)器提供緩沖服務(wù)。另外,還可以啟用高級URL策略和管理技術(shù),從而使處于不同web服務(wù)器系統(tǒng)的web頁面同時存在于同一個URL空間下。
可以使用ProxyPass指令激活反向代理(在RewriteRule指令中使用[P]標(biāo)記也可以)。配置反向代理并不需要打開ProxyRequests指令。
正向代理
ProxyRequests On
ProxyVia On
<Proxy *>
Order deny,allow
Deny from all
Allow from internal.example.com
</Proxy>
反向代理
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 http://server:port/app2
ProxyPassReverse /app1 http://server:port/app2
因此,我們可以使用反向帶來實(shí)現(xiàn)apache和tomcat,webphere,weblogic等應(yīng)用服務(wù)器的集成。但是由于apache 反向代理只做 HTTP 透明轉(zhuǎn)發(fā),因此應(yīng)用中的連接都應(yīng)該是相對路徑,不應(yīng)該使用絕對路徑,更不能使用帶應(yīng)用上下文。
如果后端應(yīng)用中使用<c:url等生成絕對路徑的應(yīng)用,最好是轉(zhuǎn)發(fā)的辦法就是讓轉(zhuǎn)發(fā)的上下文呢和目標(biāo)的上下文一致。這樣就可以避免路徑的問題。
調(diào)試apache,最好用命令行執(zhí)行httpd.exe -w -n “Apache” -k start,在控制臺上會顯示哪行配置有錯,在monitor 中沒有這個功能。
關(guān)于經(jīng)常的提示端口被綁定或者被占用,一般可以通過netstat -ano查找到占用80端口的PID,再去任務(wù)管理器查看對應(yīng)PID的進(jìn)程,對進(jìn)程進(jìn)行操作和處理。
另外,要使用代理功能,別忘了將下面兩個模塊的裝載注釋去掉:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
后續(xù)做一些apache的cache和balancer的研究與使用。
posted on 2010-12-04 21:16
不做浮躁的人 閱讀(1856)
評論(0) 編輯 收藏 所屬分類:
others