05.31 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來實現反向代理。

IIS实现反向代理

IIS6

先安裝ISAPI_Rewrite3_0082.msi,安裝完成後,再安裝一個Apache服務器,Apache安裝完成後,設置HTTP端口為8080,HTTPS端口4433,而IIS的HTTP端口為80,HTTPS端口443,IIS和Apache的端口不能衝突。

IIS新建一個站點,在網站根目錄建立一個名為 .htaccess 的文件,內容如下,域名請修改為自己的域名:

RewriteEngine On

RewriteCompatibility2 On

RepeatLimit 200

RewriteBase

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的反向代理配置。


分享到:


相關文章: