專利名稱:一種基于ssl數字證書的網絡負載均衡方法
技術領域:
本發明涉及一種網絡負載均衡方法,特別是關于一種基于SSL (Secure Socket Layer,安全套接層)數字證書的網絡負載均衡方法。
技術背景隨著現有網絡中業務訪問量和數據流量的快速增長,對后臺服務器的處理能 力的要求也相應提高,單一的服務器設備很難滿足目前的網絡需求。在此情況下, 我們可以選擇使用多臺服務器來提供服務。然而,使用多臺服務器存在一個問題, 那就是如何將訪問請求合理地分配到各個服務器,使得每臺服務器的能力都得到 充分發揮,從而更好地滿足用戶的需求。針對此種情況,網絡負載均衡方法應運 而生,它可以把來自網絡中的數據流量合理地分配到多個后臺服務器上,從而最 大化地利用所有后臺服務器。另外,隨著互聯網的發展,人們越來越多的依靠網絡來完成一些敏感數據的 事務處理,比如電子銀行,電子商務等等。這些敏感數據事務處理的電子化導 致非常重要和保密的數據經常在網絡中傳輸。為此,人們發明了很多新的技術來 保證這些私密和重要的數據能夠在網絡中安全可靠的傳輸,這其中最重要的就是利用SSL數字證書來驗證數據發送方和接受方的真實身份。有了負載均衡的需求和網絡安全的需求,對網絡安全數據的負載均衡自然而 然的成為符合網絡發展大潮流的重要功能。目前為止還沒有一個很好的考慮了網 絡安全的負載均衡方法,使得安全保密的數據得以有效的在網絡中傳輸。 發明內容針對上述問題,本發明的目的是提供一種基于SSL數字證書的網絡流量負載 均衡的方法,該方法在做負載均衡的同時兼顧了計算機網絡安全。為實現上述目的,本發明采取以下技術方案 一種基于SSL數字證書的網絡 負載均衡方法,其包括以下步驟1)定義若干后臺服務器組;2)收到客戶請求, 根據客戶請求中SSL數字證書的內容求出一個key值;3)根據求出的key值找到 對應的后臺服務器組;4)將客戶請求分配到找到的后臺服務器組中。在進行步驟l)時,采取以下兩種定義方法之一①將所述后臺服務器組以名 稱排序填入散列表;②直接給后臺服務器組起名,并建立與key值的對應關系。在進行步驟2)時,采用以下兩種算法之一①利用智能散列算法,根據整個 SSL數字證書或其中一個字段內容,計算出key值;②直接取出SSL數字證書中的 一個字段信息作為key值。利用智能散列算法時,用散列表有效項個數對key值取模,根據得到的模數 從散列表中找到對應的后臺服務器組。用散列表有效項個數對key值取模,利用如下取模公式key%n = m,其中 n為散列表有效項個數,m是服務器的編號。直接取出SSL數字證書中的一個字段信息作為key值時,根據后臺服務器組 名稱與key值建立的對應關系,直接找到與key值對應的后臺服務器組。所述后臺服務器組中包括至少一組后備服務器。定期對后臺服務器組進行健康檢查,健康檢査是負載均衡設備將自身模擬為 一虛擬客戶,間斷向各后臺服務器組發送請求,檢査各后臺服務器組狀態。當健康檢査顯示其中一個后臺服務器組己經失效,則將分配到該后臺服務器 組的客戶請求分配到后備服務器組。當健康檢查顯示其中一個后臺服務器組已經恢復正常,則將客戶請求重新分 配到該所述后臺服務器組。由于采用了以上技術方案,使本發明具有如下一些特點1、本發明在負載均 衡方法中考慮了客戶的身份信息,把來自不同身份的客戶的訪問請求分配到不同 的服務器組中,這些服務器組根據各自不同的安全保護措施,對不同身份的客戶 請求做出響應,從而保證了事務處理的安全性,有效抵制了虛假客戶或惡意客戶 對后臺系統的侵犯。2、通過客戶的身份信息還可以為不同客戶提供不同質量的服 務,如對金卡會員提供VIP服務,對其他會員只提供普通服務等等。這樣就大大 增加了服務的靈活性和多樣性。3、最大化地利用了后臺服務器的能力。每個服務 器組為來自不同客戶的請求提供服務,各個服務器組處理不同客戶的請求,使得 所服務的客戶都能得到快速響應。
圖1是本發明的一個應用環境實例示意圖 圖2是本發明中所參考的SSL數字證書整體結構示意圖 圖3是本發明證書主體結構示意圖具體實施方式
本發明的基本思路是1、使用已有技術中的智能散列算法或其它算法根據客 戶端證書的內容得出一個關鍵值(Key)。 2、根據Key值的不同將來自不同客戶端的請求數據分到不同的后臺服務器組中。3、根據實際的需要,可以額外建立一個 后備服務器組, 一旦某個后臺服務器組中的服務器都不可用時,后備服務器組中 的服務器將會被采用。下面結合附圖和實施例,對本發明進行詳細的描述。基于上述基本思路,本發明方法包括以下步驟1)如圖1所示,定義若干后臺服務器組。①定義若干個后臺服務器組本實施例一共定義三個后臺服務器組一一第1 組、第2組、第3組,每個組中可以包括若干個后臺服務器。本實施例用如下兩 種方法定義后臺服務器a、將后臺服務器組填入散列表,以后臺服務器組名稱排序,比如本實施例中 散列表的有效項個數為3,內容為012o o o第1組第2組第3組o o ob、直接給后臺服務器組起名,并建立與key值的對應關系。比如本實施例三 個后臺服務器事先起名為"研發","測試"和"銷售"。后臺服務器的定義方法有很多種,具體采用哪種方法來定義可以根據實際需要來靈活選擇。②定義一個后備服務器組(可選)后備服務器組也可以包括若干個服務器,本實施例定義了一個。2)收到客戶請求,根據客戶請求中SSL數字證書的內容求出一個key值。 如圖2所示, 一般情況下,SSL數字證書的內容結構包括證書主體 (TBSCertificate)、證書簽名算法標識(signatureAlgorithm)和證書簽名值 (signatureValue)三個部分。其中TBSCertif icate部分是關鍵部分,它包含了 證書的很多關鍵字段,如圖3所示,比如主體名稱(siibject)、簽發者名稱 (issuer)、主體的公鑰(subjectPublicKeylnfo) 、 i正書的有效期(validity)以及 其它的相關信息。下面列舉兩種求key值的算法① 利用智能散列算法對相關作哈希,得到key值。這里可以根據整個證書的 內容,也可以根據證書某一字段(如subject)的內容來做負載均衡Hash(整個證書或證書的某個字段)二 key② 取出證書內容中一個字段信息直接作為key值,如主體字段中的0U字段 (organization unit,機構部門)o對于同一個實施環境中,我們是要求采用其中一種算法求key值,從而保證 相同證書內容的客戶請求得到的key值永遠一樣,因此它能夠將概率上大致相同多的客戶請求或任務量分配給每一臺服務器,從而保證了網絡流量的均勻分配。3) 根據求出的key值找到對應的后臺服務器組。① 如果是利用智能散列算法對相關證書內容作哈希,則得到的key值是一個 數字,因此用散列表有效項個數對key值取模,然后根據得到的模數從散列表中 找到對應的服務器組,取模公式為key % n 二 m其中n為散列表有效項個數,m是服務器的編號。如101 % 3 = 2,與第三 個后臺服務器組對應(O與第一個后臺服務器組對應)。② 如果是直接取出證書內容中一個字段信息,則key值是個名稱,因此可以 與后臺服務器組的名稱建立對應關系。比如三個后臺服務器事先起名為"研發","測試"和"銷售",則機構部門(0U)字段為"測試"的客戶請求將會找到名 稱為"測試"的后臺服務器組。4) 將客戶請求分配到找到的后臺服務器組中。如果定義了后備服務器組的話,則需要對各后臺服務器進行健康檢查。健康 檢查是負載均衡設備將自身模擬為一虛擬客戶,間斷向后臺服務器組發送請求, 檢查后臺服務器組狀態,并選擇最終使用的服務器組。如果服務器組生效,則使 用此服務器組;如果服務器組已經失效,則使用后備服務器組。當此服務器組恢 復正常后,原有的流量又會返回該服務器,這是因為求出的key值將會被優先使 用決定服務器組,從而保證了服務器組的可恢復性,使得短暫故障的服務器恢復 后馬上被派上用場。例如1、當第l組服務器有效時,客戶請求被分配到第l組 服務器。2、當第1組服務器變為失效后,客戶請求會被分配到后備服務器組。3、 當第1組服務器再次生效后,客戶請求又會被重新分配到第1組服務器。上述實施例中僅舉例說明了兩種求key值的算法,但實際上求key值的算法 有很多種,且都為本領域技術人員公知的算法,具體采用哪種算法以及參考哪些 證書信息可以根據實際需要來靈活選擇。上述實施例中僅根據兩種不同的求key值算法舉例說明了兩種key值與后臺 服務器的對應關系,但由于求key值的算法有很多種,因此key值與后臺服務器 的對應關系也有很多種,具體采用哪種對應關系可以根據求key值的算法來靈活 選擇,且都為本領域的技術人員公知。上述實施例僅為本發明的一個較佳實施例,在本發明的實質創意范圍內,本 發明采用的某些算法和對應關系都可以有許多變化或替換,這些算法和對應關系 的變化或替換都不應排除在本發明的保護范圍之外。
權利要求
1、一種基于SSL數字證書的網絡負載均衡方法,其包括以下步驟1)定義若干后臺服務器組;2)收到客戶請求,根據客戶請求中SSL數字證書的內容求出一個key值;3)根據求出的key值找到對應的后臺服務器組;4)將客戶請求分配到找到的后臺服務器組中。
2、 如權利要求1所述的一種基于SSL數字證書的網絡負載均衡方法,其特征 在于在進行步驟l)時,采取以下兩種定義方法之一① 將所述后臺服務器組以名稱排序填入散列表;② 直接給后臺服務器組起名,并建立與key值的對應關系。
3、 如權利要求1所述一種基于SSL數字證書的網絡負載均衡方法,其特征在 于在進行步驟2)時,采用以下兩種算法之一① 利用智能散列算法,根據整個SSL數字證書或其中一個字段內容,計算出 key值;② 直接取出SSL數字證書中的一個字段信息作為key值。
4、 如權利要求3所述一種基于SSL數字證書的網絡負載均衡方法,其特征在 于利用智能散列算法時,用散列表有效項個數對key值取模,根據得到的模數 從散列表中找到對應的后臺服務器組。
5、 如權利要求4所述一種基于SSL數字證書的網絡負載均衡方法,其特征在 于用散列表有效項個數對key值取模,利用如下取模公式key % n = m,其中 n為散列表有效項個數,m是服務器的編號。
6、 如權利要求3所述一種基于SSL數字證書的網絡負載均衡方法,其特征在 于直接取出SSL數字證書中的一個字段信息作為key值時,根據后臺服務器組 名稱與key值建立的對應關系,直接找到與key值對應的后臺服務器組。
7、 如權利要求1所述一種基于SSL數字證書的網絡負載均衡方法,其特征在 于所述后臺服務器組中包括至少一組后備服務器。
8、 如權利要求1或7所述一種基于SSL數字證書的網絡負載均衡方法,其特 征在于定期對后臺服務器組進行健康檢查,健康檢査是負載均衡設備將自身模 擬為一虛擬客戶,間斷向各后臺服務器組發送請求,檢査各后臺服務器組狀態。
9、 如權利要求8所述一種基于SSL數字證書的網絡負載均衡方法,其特征在 于當健康檢查顯示其中一個后臺服務器組已經失效,則將分配到該后臺服務器組的客戶請求分配到后備服務器組。
10、如權利要求8所述一種基于SSL數字證書的網絡負載均衡方法,其特征在于當健康檢査顯示其中一個后臺服務器組已經恢復正常,則將客戶請求重新 分配到該所述后臺服務器組。
全文摘要
本發明涉及一種基于SSL數字證書的網絡負載均衡方法,其包括以下步驟1)定義若干后臺服務器組;2)收到客戶請求,根據客戶請求中SSL數字證書的內容求出一個key值;3)根據求出的key值找到對應的后臺服務器組;4)將客戶請求分配到找到的后臺服務器組中。該方法在做負載均衡的同時兼顧了計算機網絡安全,不僅保證了網絡事務處理的安全性,而且使得所服務的客戶都能得到快速響應。本發明最大化地利用了后臺服務器的能力。每個服務器組為來自不同客戶的請求提供服務,各個服務器組處理不同客戶的請求,使得所服務的客戶都能得到快速響應。
文檔編號H04L9/32GK101247350SQ200810101868
公開日2008年8月20日 申請日期2008年3月13日 優先權日2008年3月13日
發明者寇洪斌, 林桂賢, 貝少峰 申請人:華耀環宇科技(北京)有限公司