http://blog.csdn.net/yuanguozhengjust/article/details/23576033nginx
一直說在IIS上作反向代理,因爲沉迷在nginx一行指令完事的美好情景當中,因此IIS懶得折騰,今天終於下定決心在IIS上折騰一下反向代理,通過一夜的搗鼓,終於搞定!搞定之後發現其實太簡單了有木有!!(網上教程很暈!)首先說一下,IIS6略古老,想作反向代理也基本沒戲,因此我就用IIS7.5和IIS8.5說事吧!瀏覽器
神馬是反向代理?指以代理服務器來接受Internet上的鏈接請求,而後將請求轉發給內部網絡上的服務器,並將從服務器上獲得的結果返回給Internet上請求鏈接的客戶端,此時代理服務器對外就表現爲一個服務器。咱們能夠經過反向代理實現負載平衡、突破防火牆限制等一些很是實用的Web服務器功能,目前反向代理無論在私有云仍是公有云的虛擬機上用的不少不少。服務器
第一步,下載安裝ARR(Application Request Routing),http://www.iis.net/downloads/microsoft/application-request-routing:網絡
簡要說下ARR,來自微軟官方的解釋是:app
IIS Application Request Routing (ARR) 3enables Web server administrators, hosting providers, and Content DeliveryNetworks (CDNs) to increase Web application scalability and reliability throughrule-based routing, client and host name affinity, load balancing of HTTPserver requests, and distributed disk caching. With ARR, administrators canoptimize resource utilization for application servers to reduce managementcosts for Web server farms and shared hosting environments.ide
(谷歌一下基本就知道意思)性能
也不知道爲啥IIS都出到8.5了還不自帶,每次還要下載,不過下載、安裝過程很簡單,網站
這個程序點了,根據網絡狀況,過一下子點下一步就本身全安裝完了,Win7/2008本身安裝2.0版本,Win8/8.1/2012安裝3.0,兩個版本功能差的很少,就是本身生產的XML配置文件的寫法不太同樣而已。.net
第二步,簡要設置ARR:scala
安裝完成後,IIS裏會多出兩個圖標,分別是Application Request Routing和URL重寫。2.0版本(也就是2008或者Win7系統)須要雙擊ApplicationRequest Routing之後,在右側Server Proxy Settings裏,將代理功能開啓,而Win8之後的版本本身默認就開啓了:
第三步,設置反向代理:
ARR基本設置好了之後,須要進入一個IIS上搭建好的網站進行URL重寫配置,網上給的教程太很差懂了,反向代理能夠說分爲兩種,一種是多域名綁定,一種是採用虛擬目錄的形式,下面分別介紹。
1. 多域名綁定:
所謂多域名綁定,其實就是指一個或者多個域名(多個不一樣域名或一個域名的多個A記錄)都指向同一IP,而經過不一樣的域名訪問的效果還不一樣,如何實現?就須要使用URL重寫或者重定向,使用URL重寫也就是反向代理的原理。當時圖樣,不懂反向代理,還在ASP.NET頁面裏寫呢,後來改進在XML裏添加……
具體操做以下:
① 打開IIS的URL重寫
② 右鍵->添加規則,選擇「入站規則」裏的「空白規則」,其餘項目忽略,亂點就等着配置失敗吧,我但是深有體會!
裏面的內容能夠按照下圖所示填寫,「名稱」隨便寫,而後就在匹配URL裏填個模式,^(.*)表示處理全部格式的URL字符串
③ 把下面的「條件」展開,點擊右邊的「添加」
④ 「編輯條件」裏面的項目能夠按照下面的圖所示的內容填寫,「條件輸入」填「{HTTP_HOST}」意思是請求的主機名,模式格式爲:「^綁定的域名$」,好比我想讓用戶訪問http://baidu.yuanguozheng.com時跳轉到百度,也就是對百度作反向代理,就寫成這樣(^baidu.yuanguozheng.com$),前提是填的這個域名必須綁定在你的服務器IP上。
⑤ 接下來填寫操做,默認重寫,不用變,只須要填寫URL,後面跟上「{R:1}」意思是把請求的域名後面的參數也帶過來,確認後,點擊右上角的應用便可完成反向代理配置,而後打開瀏覽器輸入網址便可看到想要的效果。
2. 虛擬目錄形式:
虛擬目錄形式就相似:http://test.com/doSomething這樣的連接,有些網站採用了MVC模式,看起來像虛擬目錄,其實否則,這樣的URL重寫,在入站規則上只須要改幾個地方便可。
① 匹配URL中的模式須要加上你須要使用的相似虛擬目錄的字符串,以下圖,^和(.*)之間加上虛擬目錄URL便可,如shop/,blog/等
② 條件,去掉二級域名,只保留根域名,其餘不變
③ 每每,這樣配置完後能夠正常訪問網站,但網頁連接資源,如CSS、JS、圖片等等都有URL問題,因此要配置出站規則,但出站規則不支持動態內容壓縮,因此源網站請關閉動態內容壓縮功能。出站規則的添加相似入站規則,只是在那個窗口中選出站規則便可。
匹配請按圖中所示的方式填寫
④ 而後添加條件,這時請將「條件輸入」填寫成「{URL}」,模式格式爲。「^虛擬目錄名/.*」
⑤ 重寫也按以下內容填寫,意思是在資源的相對URL以前加上「/shop」這樣的虛擬目錄名,以便獲取,可是若是是絕對路徑IIS本身就忽略了。應用規則後便可。
大功告成!雖然很高興!可是和nginx的server_name和location比起來,我想死的心都有了,nginx真心方便,只惋惜在Windows平臺性能遠不及*nix平臺,IIS一向的便捷操做在這兒體現不出來了,但願微軟之後仍是好好作吧!
轉載請註明出處:http://blog.csdn.net/yuanguozhengjust/article/details/23576033