貼張圖吧,反向代理的工作流程。
沒接觸之前,覺得反向代理是一個很高級的東西。其實也只是新建一個空站點,配置一個配置文件就可以代理到你想要代理到的網站獲取響應流等等。
目前,我做的是IIS7的配置。II6的網上還有很多文章可以去借鑒。
首先,先安裝URL Rewrite 和 Application Request Routing 以下簡稱ARR。只轉發到IIS內網站,不跨IIS,不跨服務器,則不需要安裝ARR。一個URL Rewrite即可轉發與接收。
URL Rewrite是走Web平台安裝程序去下載的,也可以提前先把IISWeb平台安裝程序下載下來,不提前下,你在安裝URL Rewrite和ARR時,也會自動給你下載。下載地址:Web平台安裝程序。
安裝完成之后,重啟IIS你會在應用程序主頁看見ARR與URL Rewrite這兩個小插件。
接下來就針對這兩個插件進行一些設置
ARR的設置相對於較少,點開ARR打開Server Proxy Settings
隨后把Enable proxy開關打開即可,即表明當前站點開啟訪問外部站點,可跨IIS,可跨服務器。
成功打開,這里將會有一個代理服務。
接下來就是配置URL Rewrite,這個需要針對於你具體的哪一個站點進行設置,ARR則針對於全局進行設置的。
URL Rewrite配置也比較簡單,新建一個空站點。進行一些規則編寫即可。我這里建立一個空站點,訪問此網站,讓他去請求博客園主頁。
此時訪問當前網站沒有任何內容。
接下來針對於URL Rewrite做一些規則編寫,使他去訪問博客園。
點擊當前網站在主頁找到URL 重寫,打開》添加規則》選擇空白規則》編輯入站規則起一個名稱,使用正則表達式模式使用 .* 就是與任意字符匹配。正則好的可以自定義各種各樣的匹配規則。》操作重寫URL中,寫入你想要請求的網站地址。》應用即可
此時我們在瀏覽本地8001站點,他去請求的就是博客園的首頁。
仔細一看,添加完規則之后。IISTestWeb站點下自動建立了一個Web配置文件,所以說此方式的反向代理,其實就是安裝好插件之后配置一下web.config。
這個相當於是把我的 http://localhost:8001/ 的請求地址,替換成了我規則里填寫的 ”https://www.cnblogs.com/{R:0}“ 地址。{R:0}意思就是后面匹配任意字符。
當然你還可以在條件中添加許多條件,來對請求的地址做一些限制等等操作。我正則不是很好,就不舉例了。。。
這只是相對簡單的一種代理方式,使用最多性能最好的還是Nginx的方向代理,它可以做的有許多集群,負載均衡等等操作。日后有空再去研究,感興趣的可以去研究一下。