IIS實現反向代理
反向代理(Reverse Proxy)方式是指以代理伺服器來接受internet上的連線請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給internet上請求連線的客戶端,此時代理伺服器對外就表現為一個反向代理伺服器。
反向代理可以啟用高階URL策略和管理技術,從而使處於不同web伺服器系統的web頁面同時存在於同一個URL空間下。
通過IIS安裝反向代理,可以使得IIS和Apache等伺服器執行在同一臺機器上,IIS和Apache都可以通過80埠訪問,使得網站的相容性更強。
IIS實現反向代理有兩種方法,IIS6通過第三方工具ISAPI Rewrite來實現反向代理,IIS7以後的版本可以用過微軟自己的URL Rewrite和Application Request Routing來實現反向代理。
IIS6
先安裝ISAPI_Rewrite3_0082.msi,安裝完成後,再安裝一個Apache伺服器,Apache安裝完成後,設定HTTP埠為8080,HTTPS埠4433,而IIS的HTTP埠為80,HTTPS埠443,IIS和Apache的埠不能衝突。
IIS新建一個站點,在網站根目錄建立一個名為 .htaccess 的檔案,內容如下,域名請修改為自己的域名:
RewriteEngine OnRewriteCompatibility2 OnRepeatLimit 200RewriteBase RewriteCond %{HTTP:Host} ^www.williamlong.info$RewriteProxy (.*) http://www.williamlong.info:8080$1 [NC,P,H]
之後,IIS6+Win2003 配置反向代理到 Apache 就成功了,制定域名可以通過80埠的IIS訪問,而實際網站則是再Apache的8080埠,對於使用者來說是不可見的。
IIS7
IIS7不用安裝第三方的軟體,本身反向代理軟體微軟就提供,我們使用微軟自己的URL Rewrite和Application Request Routing即可實現反向代理。
先安裝URL Rewrite和Application Request Routing,只轉發到IIS內網站,則不需要安裝ARR。
安裝好以上兩個外掛,重啟IIS管理器,然後點選當前主機,就會發現兩個新增的圖示了。
點選Application Request Routing圖示,選擇Server Proxy Settings,勾上Enable proxy並點選右側的應用。
選擇需要反向代理的站點,再選擇“URL重寫”,點選新增規則,選擇空白規則,“條件輸入”填寫“{HTTP_HOST}”,模式為^www.williamlong.info$,入站規則的操作型別為“重寫”,重寫URL為“http://www.williamlong.info:8080{R:1}”,填好了儲存下,即可完成IIS7的反向代理配置。