天天看點

新生命HTTP反向代理

    去年為一家公司做了一個軟體驗證系統,是以使用該公司軟體的使用者都需要購買儲值卡,并登入到伺服器校驗。服務端是IIS+ASP.Net設計的,為了保證服務端的安全(其實幾乎每天都被攻擊),客戶想出一個辦法,使用代理軟體來冒充真實的伺服器提供服務,而可以同時運作很多個代理來承受外部的攻擊,這就是HTTP反向代理的原型了。因為這個反向代理是專門為這套驗證系統而開發的,是以裡面插入了不少業務代碼,直接判斷不是非法使用者後才把請求轉發到真實伺服器。

    後來學習Ajax的時候,因為需要經常抓包調試,而一般網絡抓包工具都不支援抓自己通路自己時的資料包。于是我想到了修改反向代理,使得浏覽器通過反向代理來通路Ajax頁面,然後代理那裡把請求和響應的内容都輸出來,就達到目的了。

    去年的時候曾經釋出過一個反向代理的測試版,引起了CSDN上很多人的關注。

HTTP反向代理測試版  http://www.nnhy.org/HTML/19/41.htm

反向代理原理圖      http://www.nnhy.org/HTML/26/81.htm

(郁悶,帖超連結的時候編輯器老是報錯)

注意:

2,監聽位址主要用于擁有多個IP而隻想在某一個IP上提供服務時才需要選擇,否則預設0.0.0.0就可以了。

3,監聽端口就是代理提供服務的端口。對于直接代理和間接代理來說,就是設定代理時的端口。

4,如果不是為了調試,請不要打開顯示設定那裡的三個顯示選擇,否則會消耗大量CPU。

5,請不要經過代理下載下傳大檔案,代理本身為了提高性能使用了很大的緩沖區,如果下載下傳大檔案,代理占用記憶體會急劇上漲。

6,三個代理都需要XLog.dll和XProxy.dll的支援,單獨使用時,請不要忘記拷貝這兩個檔案。

7,*.config是相應的代理的設定檔案,XML格式,可以修改裡面的參數。

8,XLog.dll和XProxy.dll屬于X架構的一部分,除了X架構的元件外,三個代理都開放源代碼。

9,對于需要修改代碼的使用者,如果友善,請留下狀态欄那裡的文字,謝謝^_^

直接代理DirectProxy

和普通的HTTP代理一樣,沒有什麼特别的功能。

使用方法:浏覽器那裡把HTTP代理的位址和端口設定為這裡的位址和監聽端口即可。

間接代理IndirectProxy

新生命間接代理開發的目的就是為了躲避通過檢測直接代理而限制共享上網的軟體(比如DrCom),在直接代理不可用的網絡中提供代理功能。間接代理實際上就是把直接代理拆成服務端和用戶端兩部分,兩端間的通信加密傳輸。

使用方法:

撥号的機器啟動間接代理并勾選“伺服器”選項作為服務端,設定好監聽端口;

要上網的機器啟動間接代理作為用戶端,遠端位址和端口填寫服務端的位址和監聽端口,浏覽器那裡設定HTTP代理,位址是自己127.0.0.1,端口是用戶端的監聽端口。

反向代理ReverseProxy

Http反向代理設計的初衷是保護真實Web伺服器,後來也用于調試Ajax,其實還有很多很多功能,大家自己慢慢想吧。

使用方法:設定遠端位址為要映射的Web伺服器的IP或域名,并設定端口(預設80),監聽端口就是别人用來通路本機的端口。設定完成後啟動,所有人通路本機的監聽端口時就被映射到遠端伺服器,看起來本機就有一個和遠端伺服器一模一樣的網站。

<a href="http://www.nnhy.org/bbs/dispbbs.asp?boardID=4&amp;ID=281&amp;page=1">新生命HTTP反向代理下載下傳</a>

我不相信神話,我隻相信汗水!我不相信命運,我隻相信雙手!

繼續閱讀