999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#自動生成PAC腳本實現代理服務器的負載均衡與冗余

2015-10-21 01:41:48林楠
企業技術開發·下旬刊 2015年2期

林楠

摘 ?要:IPv4地址資源不足,共享IP一般采用NAT、代理、反向代理等方式,在客戶端數量較多的情況下,一般要考慮負載均衡與冗余的情況。文章介紹一種通過定期輪詢動態生成PAC腳本,從而達到數臺代理服務器的負載均衡與冗余的程序設計,具有低成本、操作簡單的特點。

關鍵詞:CSharp;PAC腳本;代理服務器;負載均衡;冗余

中圖分類號:TP393.06 ? ? 文獻標識碼:A ? ? ?文章編號:1006-8937(2015)06-0070-02

目前,IPv4的地址資源嚴重告急,在日常工作生活中,家庭或企業一般只能通過一個或幾個互聯網IP地址進行接入,其內部網絡如需同時訪問互聯網,一般使用路由器的NAT(Network Address Translation網絡地址轉換)功能或代理服務器來實現私網對互聯網的訪問。但是當內部網絡計算機數量過多時,NAT會極大的影響整臺路由器的性能,單代理服務器也會因負載過大而經常宕機。此時,我們一般采用以下幾種方式來解決這個問題:

①使用防火墻的NAT功能來替代路由器的NAT功能,防火墻的NAT功能是由硬件實現,性能遠超路由器,可以支持大數量級的NAT。

②使用多臺代理服務器實現負載均衡。將用戶請求隨機發送到不同的代理服務器,以實現負載均衡。

基于成本等因素考慮,我們選擇方案2,通過部署多臺代理服務器,并在客戶端使用自動代理PAC腳本來實現代理服務器的負載均衡。

1 ?PAC腳本應用

自動代理腳本(Proxy auto-config Script),簡稱PAC腳本。一個PAC文件就是一個Javascript腳本,可放置在服務器上,通過遠程WEB訪問,客戶端只需要在代理的使用自動檢測腳本中輸入PAC腳本的WEB地址,就可以使用該腳本,當代理服務器發生變化時,只需維護Web服務器上的PAC腳本,無需更改客戶端配置,方便后期維護,減輕運維成本與負擔。

PAC腳本包含一個FindProxyForURL函數,IE通過傳入兩個參數url(訪問地址的完整URL)與host(訪問地址的主機名)來判斷是直接訪問,還是通過函數返回的代理服務器地址與端口來訪問。

PAC腳本可以通過取隨機數輕松實現負載均衡,但是當其中一臺服務器宕機時,腳本依舊有可能返回該服務器,從而導致客戶端訪問異常。于是我們考慮可以編寫一個程序,運行在存放PAC腳本的WEB服務器,通過定時對各代理服務器進行輪詢,根據代理服務器狀態變化,重寫PAC腳本。

2 ?程序總體設計

程序基于C#的Winform編寫,分為兩個模塊。

2.1 ?監控模塊

程序設置一個timer定時器,定期對各代理服務器進行輪詢,根據輪詢結果決定是否重寫PAC腳本,并顯示輪詢結果,方便巡檢查看。輪詢采用TcpClinet.Connect方法來測試代理服務器是否正常工作,如圖1所示。

2.2 ?配置模塊

可對代理服務器地址、端口、輪詢間隔、PAC文件存放路徑與文件名等參數進行配置。配置文件采用XML格式保存,如圖2所示。

3 ?技術實現

3.1 ?連接測試

如直接使用TcpClient.Connect連接測試端口,當服務器不連通或端口未打開時,需要很長時間才能返回結果,捕獲So-

cketException異常。這里希望可以設定一個較短的時間獲取結果,超時則判斷連接失敗。

這里使用了ConnectorState.Completed.WaitOne(int millise-

condsTimeout,bool exitContext)函數,在millisecondsTimeout內未響應,則返回錯誤,退出線程。

3.2 ?文件寫入

FileStream對象表示在磁盤或網絡路徑上指向文件的流。這個類提供了在文件中讀寫字節的方法,經常使用StreamRea-

der或StreamWriter執行這些功能。FileMode.Create表示當文件不存在時直接創建文件,而文件已存在時刪除該文件,然后創建新文件。

3.3 ?XML讀寫

可擴展標記語言,簡稱XML,輕量級的數據存儲文件,規范統一,易于閱讀、擴展,可被幾乎所有的語言所支持。

程序使用XmlDocument來讀取XML文件。XML文件可視為由聲明(Declare),元素(Element),屬性(Attribute),文本(Text)等構成的一個樹。第一個結點為根結點,每個結點均可以有自己的子結點。可以通過一系列屬性或方法得到這個結點的值或其它一些屬性。

3.4 ?功能控制

當監控未開始時,可以重新加載代理服務器,但不能手動輪詢。當開始監控時,可以手動輪詢,但不可以重新加載代理服務器。

4 ?后期功能擴展

后期可考慮對以下功能進行擴展,也可以根據實際需求,開發新的功能。

4.1 ?日志與備份

將輪詢結果、文件生成、更改配置等操作記錄在日志中備查,并在生成新的PAC文件與配置前,對原文件進行備份。

4.2 ?服 ?務

將程序安裝為服務,可在WEB服務器啟動時自動運行。設置為只運行一個實例,避免不同用戶登錄重復運行,造成資源浪費。

4.3 ?異常提醒

運維人員可以根據輪詢顯示結果及時發現故障。可考慮以發送短信等方式進行實時提醒,縮短故障發現周期,提高可靠性。

5 ?結 ?語

本文提供一種思路,使用自動代理腳本PAC實現代理服務器的負載均衡,再編寫一個程序,通過定時輪詢檢測代理服務器的狀態,根據狀態變化,動態生成PAC文件,實現代理服務器的冗余,低成本地解決代理服務器的負載均衡與冗余。

參考文獻:

[1] 董文江,胡軼,李健玲,等.PAC腳本在文獻代理數據庫中的應用[J].甘肅科技,2006,(9).

主站蜘蛛池模板: 国产视频一二三区| 国产网站免费| 不卡无码网| 国产三级精品三级在线观看| 野花国产精品入口| 亚洲欧美自拍中文| аⅴ资源中文在线天堂| 亚洲国内精品自在自线官| 美女视频黄频a免费高清不卡| 国产91视频免费观看| 国产精品亚洲片在线va| 亚洲欧美日本国产专区一区| 国产免费a级片| 999福利激情视频| 国产网站一区二区三区| 亚卅精品无码久久毛片乌克兰| 国产欧美精品一区二区| 好吊色国产欧美日韩免费观看| 在线视频亚洲色图| 国产午夜福利在线小视频| 青草视频免费在线观看| 五月婷婷中文字幕| 欧美日韩国产成人高清视频| 国产好痛疼轻点好爽的视频| 国产精品美人久久久久久AV| 香港一级毛片免费看| 久久精品中文字幕免费| 国产美女丝袜高潮| 97se亚洲综合在线天天| 欧美人与牲动交a欧美精品| 欧美性天天| 国产乱子伦精品视频| 亚洲不卡网| AV熟女乱| 最新亚洲人成无码网站欣赏网| 国产一区二区精品福利 | 一级在线毛片| 国产波多野结衣中文在线播放 | 国产微拍一区二区三区四区| 国产日本欧美在线观看| 亚洲精品视频在线观看视频| 国产日本欧美在线观看| 婷婷综合在线观看丁香| 亚洲无码视频一区二区三区| 欧美日韩久久综合| 久久综合亚洲色一区二区三区| 在线视频精品一区| 538国产在线| 亚洲视频一区| 欧美日韩国产在线播放| 欲色天天综合网| 亚洲一区二区约美女探花| 欧美a在线看| 日本黄色不卡视频| 亚洲无线一二三四区男男| 亚洲精品天堂自在久久77| 欧美精品不卡| 免费A级毛片无码免费视频| 网友自拍视频精品区| 国产精品爽爽va在线无码观看 | 亚洲欧美人成电影在线观看| 最新加勒比隔壁人妻| 国产欧美网站| 免费看黄片一区二区三区| 人妻91无码色偷偷色噜噜噜| 一区二区三区国产| 人妻91无码色偷偷色噜噜噜| a毛片在线| 色男人的天堂久久综合| 国产高清无码麻豆精品| 亚洲中文字幕在线精品一区| 国产成人免费高清AⅤ| 婷婷综合色| 久久激情影院| 国产精品林美惠子在线观看| 99视频精品全国免费品| 再看日本中文字幕在线观看| 日韩视频免费| 国产乱人伦AV在线A| 国产96在线 | 99久久精品国产自免费| 最新国产午夜精品视频成人|