❶ 負載均衡的常見產品
F5 公司是應用交付網路(ADN)領域的全球領先廠商,全球市場份額第一。其致力於幫助全球大型的企業和服務提供商實現虛擬化、雲計算和「隨需應變」的IT的業務價值。F5公司總部設在華盛頓州的西雅圖,並在全球各地設有分部。更多最新信息,行帶察請訪問F5中文官網。
產品技術特點:
1)全面的負載均衡
BIG-IP LTM(本地流量管理)包含靜態和動態負載均衡方法,包括動態速率、最少連接和觀察模式的動態平衡,這些方法用於以整體方式跟蹤伺服器的動態性能。這保證了始終選擇最佳的資源,以提高性能。可支持所有基於TCP/IP協議的伺服器負載均衡。可支持最小連接數、輪詢、比例、最快響應、哈希、預測、觀察、動態比例等負載均衡演算法。
2)應用狀態監控
BIG-IP LTM提供的監視器,用於檢查設備、應用和內容的可用性,包括適合多種應用的專用監視器(包括多種應用伺服器、SQL、SIP、LDAP、XML/SOAP、RTSP、SASP、SMB等),以及用於檢查內容和模擬應用調用的定製監視器。
3)高可用性和交易保障
BIG-IP LTM提供了次秒級系統故障切換和全面的連接映射,無論出現何種系統、伺服器或應用故障,都能保證它是一個高可用的解決方案。BIG-IP LTM可以主動檢測和響應任何伺服器或應用錯誤。
4)支持NAT地址轉換
提供NAT地址轉換功能,能夠實現動態或靜態地址轉換。
5)支持訪問控制列表
能夠實現防火牆的基本功能,建立訪問控制列表,拒接IP網段或埠號嗎。
6)廣域流量管理器(插件模塊)
為在全球各地的多個數據中心中運行的應用提供高可用性、最高的性能和全局管理。
7)鏈路控制器(插件模塊)
無縫地監控多個WAN連接的可用性和性能,智能地管理站點的雙向流量,從而提供容錯的、經過優化的互聯網接行返入。比如管理控制CT和CNC的網路流量。
8)應用防火牆(插件模塊)
該模塊可加入到F5設備中,為設備提供更高級的安全服務。
9)支持路由
該功能為F5設備中基本功能,但只支持靜態路由,如果使用較為高級的OSPF路由協議,需要購買單獨的模塊來支持。
擴展應用-降低伺服器負載
1)內容轉換
BIG-IP LTM為將許多繁雜或者重復功能卸載到集中的高性能網路設備上提供了全面的解決方案。SSL、壓縮以及BIG-IP LTM的其它多項功能提供了一個完整的內容轉換網關,可重定向、插入或者全面轉換應用內容,以實現有效且高效的應用集成。
2)OneConnect
F5 OneConnect? 將數百萬個請求匯聚為幾百個伺服器端的連接,確保後端系統能夠高效地處理這些連接,從而使伺服器容量提高60%。
3)高速緩存
智能緩存功能通過將重復流量從Web和應用伺服器上卸載,使伺服器容量提高9倍,從而實現顯著的成本節約。該功能也是業內唯一提供多存儲庫緩存的解決方案,能夠針對各應用或部門管理不同的緩存庫,為高優先順序的應用提供精確的智能控制。
4)SSL加速和卸載
每個BIG-IP LTM設備提供檔茄了硬體加速方式的SSL加密,以消除應用伺服器的SSL負擔。通過加快設置和批量加密,企業可以採用更安全的密碼將全部通信遷移到SSL,幾乎不會導致應用性能下降或瓶頸。
優化的應用
1)智能應用交換
BIG-IP LTM擁有讀取所有IP應用的獨特能力,因此,它可以轉換並且持續保留特定供應商的應用伺服器(Microsoft、IBM、Oracle、SUN等)的獨特信息; Web服務應用的XML數據;或者指示移動/無線應用的定製數值。您的企業可以藉助BIG-IP LTM轉換、記錄以及持續保留有效負載或數據流的能力,實現更高的可靠性和可擴展性。
2)智能壓縮
將應用性能提高至3倍,同時使帶寬的使用量減少80%。使用業界標準的gzip和DEFLATE壓縮演算法減少HTTP流量,通過更慢/低的帶寬連接降低帶寬消耗量,縮短用戶下載時間。這一功能對於壓縮多種類型的文件提供了豐富的支持能力,包括HTTP、XML、JavaScript、J2EE應用等。
3)靈活的第4至7層流量整形
通過為更高優先順序的應用分配帶寬,控制流量峰值,並且根據第4層或第7層參數確定流量的優先順序,保證最佳的應用性能。即IDC機房在核心交換機上所啟用的QOS功能。
4)TCP Express
BIG-IP LTM的高度優化的TCP/IP堆棧(稱為TCP Express?)將TCP/IP技術和最新RFC的改進功能,與F5開發的多項改進和擴展功能相結合,最大限度降低了擁塞、丟包和恢復的影響。BIG-IP LTM是一個全代理設備,因此,TCP Express可以屏蔽並且透明地優化伺服器或客戶端上運行的原有的或者不兼容的TCP堆棧。這樣可以使用戶的性能提高2倍,並且使帶寬效率提高4倍,同時降低您的伺服器上的連接負載。
安全的應用
1)基礎防火牆功能——數據包過濾
BIG-IP LTM集成了一個控制點,用於定義和執行基於第4層的過濾規則(基於PCAP,類似於網路防火牆),以提高網路防護能力。
2)資源隱藏和內容安全
BIG-IP LTM對所有應用、伺服器錯誤代碼和真正的URL參考實現了虛擬化和隱藏,因為這些可能為黑客提供關於基礎架構、服務及其相關漏洞的信息。敏感的文檔或內容將不允許離開您的站點。
3)定製的應用攻擊過濾
全面的檢測和基於事件的策略為搜索、檢測和應用多種規則阻止已知第7層攻擊提供了顯著增強的能力。BIG-IP LTM還採用安全的應用模板阻止已知攻擊和針對應用業務邏輯的攻擊。額外的安全層可防止黑客、病毒和蠕蟲,同時為合法流量提供持續的服務。
4)隔離協議攻擊
BIG-IP LTM提供了協議無害處理 (Protocol Sanitization) 和充分TCP終止 (Full TCP Termination)點來單獨管理客戶端和伺服器端連接,以保護所有後端系統和應用免遭惡意攻擊。
5)網路攻擊防護
BIG-IP LTM作為安全代理,可防護DoS攻擊、SYN Flood以及其它基於網路的攻擊。諸如SYNCheck?等特性可為部署在BIG-IP設備後的伺服器提供全面的SYN Flood保護。BIG-IP LTM採用Dynamic Reaping(獲取空閑連接的一種自適應方法)過濾掉負載最重的攻擊,同時為合法連接提供不間斷的服務。
6)有選擇的加密
BIG-IP LTM提供了業界最具選擇性的加密方法,對數據進行整體、部分或有條件的加密,從而保護並優化不同用戶之間的通信。
7)Cookie加密
透明地分配給合法用戶的Cookie和其它令牌都經過加密。企業可獲得針對全部帶狀態的應用(電子商務、CRP、ERP和其它關鍵業務應用)的卓越安全性,以及更高的用戶身份信任度。
8)高級SSL加密標准
BIG-IP LTM採用市場上最安全的SSL加密技術,支持更高標準的AES演算法,而無需額外的處理成本。
9)抓包工具
提供tcpmp工具作為抓包分析使用,可用於故障處理,流量分析等方向。 A10 公司是應用交付網路(ADN)領域的全球領先廠商,全球市場份額第三。其總部位於美國矽谷,連續多年被INC.500評為全球發展最快的企業之一,其產品在2013年獲得微軟Best of TechEd 2013最佳硬體和最高人氣兩項大獎,是業界性價比最高和每瓦特性能最佳的應用交付產品,具體可參考A10公司中文官網。
應用案例(國際)
Twitter,Microsoft,LG,Samsung,Godaddy,NTT,Linkedin,AOL,Evernote,Terra,Bizrate,meebo,Box,Subaru,gamania,mevio,TED baker……
應用案例(國內)
淘寶網,阿里巴巴,攜程,中國雅虎,盛大網路,世紀互聯,1號店,新華網,人民網,第一視頻,500wan彩票,神州租車,國稅總局,保監會,平安集團,建設銀行,農業銀行,上海交大,浙江大學,四川大學,新華社,國電集團,中化集團,聯想集團…… 深信服應用交付AD產品具備伺服器負載均衡、鏈路負載均衡、單邊加速、智能優化技術、SSL加速、商業智能分析等優勢功能,將用戶訪問請求智能匹配到最優的鏈路,並為用戶選擇響應最快的伺服器,提升用戶使用體驗,並為企業提供科學管理的決策。
產品技術特點:
單邊加速功能
客戶端無需安裝任何插件和軟體即可提升用戶訪問速度,這使得用戶可以更快更穩定地訪問發布內容,打造穩定智能的業務發布平台。
商業智能分析
深信服AD應用交付產品區別於傳統負載均衡設備,更加關注企事業單位應用的整體交付過程中與業務、網路優化相關的一系列問題。其中最顯著的特點就是,在保證應用交付過程中穩定性的前提下,不僅可以知悉組織網路和伺服器的運行狀況,更重要的是可以幫助組織分析自身的業務系統運行狀況,以此為高層的網路優化和業務優化提供決策依據。
鏈路負載和伺服器負載二合一
深信服AD產品包括鏈路優化和伺服器優化,四到七層負載均衡,實現對各個鏈路以及伺服器狀態的實時監控,同時根據預設的規則將請求分配給相應的鏈路以及伺服器,以此最終實現數據流的合理分配,使所有的鏈路和伺服器都得到充分的利用,擴展應用系統的整體處理能力,提高應用系統的穩定性,改善用戶的訪問體驗,降低組織IT投資成本。
高投資回報比
深信服AD系列應用交付產品打破國外廠商壟斷,在同等投入水平下,具備鏈路、伺服器二合一負載均衡解決方案,並直接開通SSL加速、緩存、壓縮等眾多優化功能,獲得超出業界同類產品的設備性能 梭子魚負載均衡機通過為多台伺服器進行流量均衡、網路入侵防護等流量優化和安全掃描機制,實現應用的高可用性和安全性,並通過完善的伺服器健康檢查機制,為應用提供冗餘。梭子魚使用軟、硬體一體化設計,避免了根據伺服器台數和埠數的收費方式,為用戶提供性價比極高的應用安全負載均衡。
高可用性與高可擴展性
據行業分析報告,只有不到20%的核心應用實現了高可用性。應用高可用性所面臨的巨大挑戰包括了持續工作時間的延長、應用的擴容和攻擊的防護。梭子魚負載均衡機使用完善的伺服器健康檢查對真實伺服器進行實時監控,確保用戶的請求始終到達健康的伺服器,得到正常的響應。對於梭子魚負載均衡機自身的高可用性,可以通過梭子魚負載均衡機的集群部署實現。
對於高流量的應用環境,梭子魚負載均衡機通過動態權重分配機制根據每台伺服器的實時處理能力進行流量的均衡。對於需要會話保持的應用,梭子魚負載均衡機提供源IP會話保持以及7層的cookie會話保持功能。
易於管理和維護
梭子魚負載均衡機部署簡單。通過伺服器自動發現功能和友好的Web配置界面,幫助用戶輕松完成配置。同時,梭子魚通過集成的IPS為應用提供實時的安全防護。
梭子魚負載均衡機的Web管理界面提供完善的數據統計,對設備的性能、流量等數據進行實時統計,同時提供易於操作的服務配置頁面,為管理員提供方便的管理。 功能
1、會話保持設置,保障業務延續性、可用性。2、分發互聯網的流量,解決南北互通。3、鏈路備份,提高鏈路冗餘。4、帶寬疊加,減少互聯網接入的成本。5、鏈路自動探測糾錯與健康檢查6、智能負載均衡/手動負載均衡7、按內網地址選路/按外網地址選路
8、按應用選路
優勢:
支持帶寬疊加:將多條寬頻綁定成一條,降低對網路的投資,以最小的投入獲得最高效穩定的網路環境。支持線路備份:當一條鏈路出現故障時,可以迅速切換到其他可用鏈路,保證網路的高可用性和業務延續性。解決南北互通問題:有效解決了南北因電信、網通的差異導致了普遍存在的「南北互通」問題。支持多鏈路負載均衡:高度保證企業網路的穩定性和業務的延續性避免系統宕機、鏈路中斷或擁塞等對企業運營帶來不利影響。擁有多項先進的技術:集HTTP壓縮,SSL加速、智能數據壓縮、基於內存的高速緩存、TCP連接復用、單邊TCP加速等多項技術於一身,減少響應時間,顯著改善終端用戶體驗。豐富的演算法與策略:擁有多種均衡演算法和豐富的負載均衡策略,讓用戶更高效合理的使用網路資源,極大提升鏈路利用效率,保障業務高效運行。保障關鍵業務:支持鏈路、應用狀態監控,支持會話保持,避免業務訪問中斷,保障關鍵業務的延續性。安裝部署配置簡便:安裝簡單,部署方便,圖形化的配置界面,簡單直觀,降低用戶配置復雜度,便於系統管理和維護。 品安科技的品安科技AD產品是品安科技自主研發,擁有獨立自主知識產權的,涵蓋負載均衡、應用加速及應用安全功能的應用交付控制器。該產品內聚了獨有的多核多線程調度、告訴協議棧等關鍵技術,能極大的提高伺服器的可用性,保障鏈路的可靠性和安全性,高效的將應用交付給客戶,改善用戶訪問體驗,降低IT投資成本。
特點優勢:
1 、All in One, One for ALL 多種功能為一體。應用交付控制器是集成多功能通信管理平台,把主流應用流量管理和性能增強功能集成到一個功能強大的平台上,包括二到七層服務負載均衡(SLB)、高速緩存(Cache)、鏈路負載平衡(LLB)、SSL加速、HTTP壓縮、群集、應用安全防火牆(Webwall)和全局服務負載平衡(GSLB)。該平台加快了應用傳輸速度並簡化了這一過程。
2 、High Performance 高性能。通過採用多種性能增強技術,特別是具有革命性的國內獨有技術,即高速協議棧技術,將應用交付控制器提供的所有功能集成在一起,極大的地優化了各個功能的處理過程,實現了數據動態管理,從而保證網路應用和服務能夠高速和可靠地運行。
3 、TCP off loading 網路卸載。應用交付控制器在實現服務負載均衡時,通過特有的連接復用等性能優化技術,在穩定的實現服務負載均衡功能的基礎上,能夠在高負載的情況下大大減小後台的負載總量,使得服務提供設備能夠處理更多的並發請求,從而提供更優的性能價格比。在結合Cache功能應用時,應用交付控制器甚至能夠成百倍地減小對後台的負載,提供令人驚喜的表現。
4、Flexibility 靈活。在實現高處理能力和功能的同時,應用交付控制器相對與其它產品配置、管理和維護更加簡單和人性化。同時結合獨有的強大本地化技術支持和研發力量,能夠及時准確的提供全面的技術服務,為用戶提供長期創造價值。 天融信網路衛士TopApp-LB負載均衡系統是一款融合了智能帶寬控制功能的鏈路及伺服器負載均衡產品。通過對網路出口鏈路和伺服器資源的優化調度,TopApp-LB負載均衡系統讓大規模的應用部署輕松實現,同時達至最穩定的運行效果,最高的資源利用率,最佳的應用性能和用戶體驗。大量的企事業單位通過TopApp-LB負載均衡系統順利實現了應用部署,滿足了信息化發展的需求,並極大地提升了工作效率。
二合一負載均衡
集成高性能鏈路負載均衡和伺服器負載均衡,保證應用數據在錯綜復雜的網路中獲得最佳傳輸路徑。完善的鏈路、應用服務健康檢查機制,及時診斷出不能正常工作或負載過重的鏈路和伺服器。能夠根據應用、鏈路的健康狀況,智能調整流量在多鏈路、多伺服器之間的分配,並自動完成切換,提升網路和應用的可用性。
精確流量控制提升帶寬價值
創新的端到端精確帶寬控制與均衡技術避免了傳統隊列機制所帶來的廣域網下行帶寬的浪費,真正實現優先順序管理、帶寬限制、帶寬保障以及帶寬的公平使用,提升帶寬價值。
高可用性保證
實現多機集群及Active-Standby、Active-Acitive模式的高可用性部署,最大化應用運行時間,避免了設備或網路故障對業務的影響。
強化的安全保護
狀態檢測防火牆實現高性能的訪問控制,雙向NAT支持多對一、一對多和一對一等多種方式的地址轉換,IP/MAC地址自動掃描及綁定,有效抵禦數十種網路攻擊。
易於使用及部署
單臂、雙臂可選的接入模式最大程度上減少用戶網路結構的調整。負載均衡演算法的自適應管理、內置中國ISP地址列表、伺服器故障自動通知及應用故障自動修復等降低了用戶配置管理的復雜性。
❷ 常見的負載均衡技術
四層負責均衡:主要是指通過判斷報文的IP地址和埠並通過一定的負載均衡演算法來決定轉發到哪個指定目標,主要工作在OSI模型的第四層。四層負載均衡對數據包只是起一個數據轉發的作用,並不會干預客戶端與伺服器之間應用層的通信(如:三次握手等)。所以能對數據所進行的操作也就很少,但相對於七層負載均衡來講效率會高上很多
七層負載均衡:也被稱為「內容交換」,指的是負載均衡設備通過報文中的應用層信息(URL、HTTP頭部等信息)和負載均衡演算法,選擇到達目的的內部伺服器。七層負載均衡可以「智能化」地篩選報文中 應用層信息,然後根據不同的信息進行特定的負載均衡調度。這種方式提升了應用系統在網路層上的靈活性,另外也在一定程度上提升了後端系統的安全性。因為像網路常見的DoS攻擊,這些攻擊在七層負載均衡的環境下通常都在負載均衡設備上就截止了,不會影響到後台伺服器的正常運行。
前網路中常見的負載均衡主要分為硬體負載均衡和軟體負載均衡。硬體負載均衡比較知名的產品有F5 Big-IP、Cirtix Netscaler等等。而軟體負載均衡就有著眾多的開源項目,常見的有Haproxy、nginx、lvs等。
Haproxy:
lvs:
nginx:
Haproxy可以做代理服務相對於nginx而言有很多相同之處,統一可以基於mode tcp進行四層代理也可以基於mode http進行七層代理,但不同的是其無法使用location和if等進行匹配判斷。突出優勢在於有會話綁定,web管理界面,狀態統計非常詳細。官方推薦只啟用一個進程,相對於nginx多進程架構工作並不理想,更多的線程可能會受到系統內存的一些限制。
程序環境:
主程序:/usr/sbin/haproxy
主配置文件:/etc/haproxy/haproxy.cfg
Unit file:/usr/lib/systemd/system/haproxy.service
查看配置文件
重要的幾個參數,及性能調優,多數無需修改
發現日誌發送給本機rsyslog的local2的facility,而本機的rsyslog里並沒有定義,需要我們自己去配置
所以vim /etc/rsyslog.conf添加一段將local2的所有信息記錄在對應日誌文件中
由於HAProxy可以工作在七層模型下,因此,要實現HAProxy的強大功能,一定要使用強大靈活的ACL規則,通過ACL規則可以實現基於HAProxy的智能負載均衡系統。HAProxy通過ACL規則完成兩銀汪種主要的功能,分別是:
1)通過設置的ACL規則檢查客戶端請求是否合法。如果符合ACL規則要求,那鋒賀仔么將放行;如果不符合規則,則直接中斷請求。
2)符合ACL規則要求的請求將被提交到後端的backend伺服器集群,進而實現基於ACL規則的負載均衡。HAProxy中的ACL規則經常使用在frontend段中,使用方法如下:
acl 自定義的acl 名稱 acl 方法 -i [ 匹配的路徑或文件] 其中:
·acl:是一個關鍵字,表示定義ACL規則的開始。後面需要跟上自定義的ACL名稱。
·acl方法:這個欄位用來定義實現ACL的方法,HAProxy定義了很多ACL方法,經常使用的方法有hdr_reg(host)、hdr_dom(host)、hdr_beg(host)、url_sub、url_dir、path_beg、path_end等。
·-i:表示不區分大小寫,後面需要跟上匹配的路徑或文件或正則表達式。與ACL規則一起使用的HAProxy參數還有use_backend,use_backend後面需要跟上一個backend實例名,表示在滿足ACL規拍禪則後去請求哪個backend實例,與use_backend對應的還有default_backend參數,它表示在沒有滿足ACL條件的時候默認使用哪個後端
這些例子定義了www_policy、bbs_policy、url_policy三個ACL規則,第一條規則表示如果客戶端以 www.z.cn 或 z.cn 開頭的域名發送請求時,則此規則返回true,同理第二條規則表示如果客戶端通過 bbs.z.cn 域名發送請求時,則此規則返回true,而第三條規則表示如果客戶端在請求的URL中包含「buy_sid=」字元串時,則此規則返回true。
第四、第五、第六條規則定義了當www_policy、bbs_policy、url_policy三個ACL規則返回true時要調度到哪個後端backend,例如,當用戶的請求滿足www_policy規則時,那麼HAProxy會將用戶的請求直接發往名為server_www的後端backend,其他以此類推。而當用戶的請求不滿足任何一個ACL規則時,HAProxy就會把請求發往由default_backend選項指定的server_cache這個後端backend。
與上面的例子類似,本例中也定義了url_static、host_www和host_static三個ACL規則,其中,第一條規則通過path_end參數定義了如果客戶端在請求的URL中以.gif、.png、.jpg、.css或.js結尾時返回true,第二條規則通過hdr_beg(host)參數定義了如果客戶端以www開頭的域名發送請求時則返回true,同理,第三條規則也是通過hdr_beg(host)參數定義了如果客戶端以img.、video.、download.或ftp.開頭的域名發送請求時則返回true。
第四、第五條規則定義了當滿足ACL規則後要調度到哪個後端backend,例如,當用戶的請求同時滿足host_static規則與url_static規則,或同時滿足host_www和url_static規則時,那麼會將用戶請求直接發往名為static的後端backend,如果用戶請求滿足host_www規則,那麼請求將被調度到名為www的後端backend,如果不滿足所有規則,那麼將用戶請求默認調度到名為server_cache的這個後端backend。
log:全局的日誌配置,local0是日誌設備,info表示日誌級別。其中日誌級別有err、warning、info、debug4種可選。這個配置表示使用127.0.0.1上的rsyslog服務中的local0日誌設備,記錄日誌等級為info。
maxconn:設定每個HAProxy進程可接受的最大並發連接數,此選項等同於Linux命令行選項「ulimit -n」。
user/group:設置運行HAProxy進程的用戶和組,也可使用用戶和組的uid和gid值來替代。
daemon:設置HAProxy進程進入後台運行。這是推薦的運行模式。
nbproc:設置HAProxy啟動時可創建的進程數,此參數要求將HAProxy運行模式設置為daemon,默認只啟動一個進程。該值的設置應該小於伺服器的CPU核數。創建多個進程,能夠減少每個進程的任務隊列,但是過多的進程可能會導致進程崩潰。
pidfile:指定HAProxy進程的pid文件。啟動進程的用戶必須有訪問此文件的許可權。
mode:設置HAProxy實例默認的運行模式,有tcp、http、health三個可選值。
retries:設置連接後端伺服器的失敗重試次數,如果連接失敗的次數超過這里設置的值,HAProxy會將對應的後端伺服器標記為不可用。此參數也可在後面部分進行設置。
timeout connect:設置成功連接到一台伺服器的最長等待時間,默認單位是毫秒,但也可以使用其他的時間單位後綴。
timeout client:設置連接客戶端發送數據時最長等待時間,默認單位是毫秒,也可以使用其他的時間單位後綴。
timeout server:設置伺服器端回應客戶端數據發送的最長等待時間,默認單位是毫秒,也可以使用其他的時間單位後綴。
timeout check:設置對後端伺服器的檢測超時時間,默認單位是毫秒,也可以使用其他的時間單位後綴。
bind:此選項只能在frontend和listen部分進行定義,用於定義一個或幾個監聽的套接字。bind的使用格式為: bind [<address>:<port_range>] interface <interface>其可以為主機名或IP地址,如果將其設置為「*」或「0.0.0.0」,將監聽當前系統的所有IPv4地址。port_range可以是一個特定的TCP埠,也可是一個埠范圍,小於1024的埠需要有特定許可權的用戶才能使用。interface為可選選項,用來指定網路介面的名稱,只能在Linux系統上使用。
option httplog:在默認情況下,HAProxy日誌是不記錄HTTP請求的,這樣很不方便HAProxy問題的排查與監控。通過此選項可以啟用日誌記錄HTTP請求。
option forwardfor:如果後端伺服器需要獲得客戶端的真實IP,就需要配置此參數。由於HAProxy工作於反向代理模式,因此發往後端真實伺服器的請求中的客戶端IP均為HAProxy主機的IP,而非真正訪問客戶端的地址,這就導致真實伺服器端無法記錄客戶端真正請求來源的IP,而X-Forwarded-For則可用於解決此問題。通過使用forwardfor選項,HAProxy就可以向每個發往後端真實伺服器的請求添加X-Forwarded-For記錄,這樣後端真實伺服器日誌可以通過「X-Forwarded-For」信息來記錄客戶端來源IP。
option httpclose:此選項表示在客戶端和伺服器端完成一次連接請求後,HAProxy將主動關閉此TCP連接。這是對性能非常有幫助的一個參數。
log global:表示使用全局的日誌配置,這里的global表示引用在HAProxy配置文件global部分中定義的log選項配置格式。
default_backend:指定默認的後端伺服器池,也就是指定一組後端真實伺服器,而這些真實伺服器組將在backend段進行定義。這里的htmpool就是一個後端伺服器組。
option redispatch:此參數用於cookie保持的環境中。在默認情況下,HAProxy會將其請求的後端伺服器的serverID插入cookie中,以保證會話的session持久性。而如果後端的伺服器出現故障,客戶端的cookie是不會刷新的,這就會出現問題。此時,如果設置此參數,就會將客戶的請求強制定向到另外一台健康的後端伺服器上,以保證服務正常。
option abortonclose:如果設置了此參數,可以在伺服器負載很高的情況下,自動結束當前隊列中處理時間比較長的連接。
-balance:此關鍵字用來定義負載均衡演算法。目前HAProxy支持多種負載均衡演算法,常用的有如下幾種:
cookie:表示允許向cookie插入SERVERID,每台伺服器的SERVERID可在下面的server關鍵字中使用cookie關鍵字定義。
option httpchk:此選項表示啟用HTTP的服務狀態檢測功能。HAProxy作為一個專業的負載均衡器,它支持對backend部分指定的後端服務節點的健康檢查,以保證在後端backend中某個節點不能服務時,把從frotend端進來的客戶端請求分配至backend中其他健康節點上,從而保證整體服務的可用性。
option httpchk的用法如下: option httpchk <method> <uri> <version> 其中,各個參數的含義如下:
check:表示啟用對此後端伺服器執行健康狀態檢查。
inter:設置健康狀態檢查的時間間隔,單位為毫秒。
rise:設置從故障狀態轉換至正常狀態需要成功檢查的次數,例如,「rise 2」表示2次檢查正確就認為此伺服器可用。
fall:設置後端伺服器從正常狀態轉換為不可用狀態需要檢查的次數,例如,「fall 3」表示3次檢查失敗就認為此伺服器不可用。
cookie:為指定的後端伺服器設定cookie值,此處指定的值將在請求入站時被檢查,第一次為此值挑選的後端伺服器將在後續的請求中一直被選中,其目的在於實現持久連接的功能。上面的「cookie server1」表示web1的serverid為server1。同理,「cookie server2」表示web2的serverid為server2。
weight:設置後端真實伺服器的權重,默認為1,最大值為256。設置為0表示不參與負載均衡。
backup:設置後端真實伺服器的備份伺服器,僅僅在後端所有真實伺服器均不可用的情況下才啟用。
用nginx反代後端的兩台tomcat主機,做動靜分離,如果是jsp結尾的就發往後端,否則就交給nginx處理。
在兩台tomcat主機上創建應用
nginx配置
則動靜分離就實現了,並且我們還基於uri實現了會話粘性