HAProxy初探及簡單案例_Net21_第二周

前言

隨著互聯網業務的迅猛發展,大型電商平臺和門戶網站對系統的可用性和可靠性的要求越來越高,高可用集群、負載均衡集群成為一種熱門的系統架構解決方案。在眾多的負載均衡解決方案中,有基于硬件的負載均衡設備,例如F5、Big-IP等,也有基于軟件的負載均衡產品,如LVS、Nginx以及本文介紹的HAProxy等。在軟件的負載均衡產品中,又分為兩種實現方式,分別是基于操作系統的實現和基于第三方應用的實現。LVS就是基于Linux操作系統的一種軟負載實現,而HAProxy就是基于基于第三方應用實現的軟負載均衡。

HAProxy簡介

HAProxy是一個開源、高性能、基于TCP(四層)和HTTP(七層)應用的負載均衡軟件,它的顯著優點如下:
  • 可靠性與穩定性都非常出色,可與硬件級設備媲美。

  • 支持多種負載均衡調度算法,并且也支持session保持。

  • 理論上1G可用RAM空間可維持4W-5W個并發連接,性能強大可見一斑。

  • 擁有功能強大的后端服務器的狀態監控web頁面,可以實時了解設備的運行狀態,還可實現設備上下線等簡單操作。

  • HAProxy還擁有功能強大的ACL支持,在架構設計與實現上帶來很大方便。

HAProxy配置概述

在講配置之前,順帶提一下安裝HAProxy,以Centos7為例的話可以直接yum安裝一下就ok了。安裝完成之后默認的主配置文件路徑為/etc/haproxy/haproxy.cfg.這個主配置文件主要由5個部分組成:
  • global段:
    用來設定全局配置參數,配置的為進程級別的參數,且通常與其運行的OS相關。

  • defaults段:
    默認參數的配置,在此處配置的各種參數默認會被frontend、backend、listen段引用,而如果frontend、backend、listen段如果設置新的相對應的參數,會覆蓋defaults段的設定。

  • frontend段:
    用于定義一系列監聽的套接字,這些套接字可接受客戶端請求并與之建立連接。

  • backend段:
    用于定義一系列“后端”服務器,代理將會將對應客戶端的請求轉發至這些服務器。

  • listen段:
    是frontend和backend的結合體,通過關聯“前端”和“后端”定義了一個完整的代理,通常只對TCP流量有用。

HAProxy簡單配置實例

拓撲環境很簡單,3臺虛擬機作為3個節點,其中一臺運行HAProxy,另外2臺作為后端Web Server。其中192.168.1.67為HAProxy節點的地址,.68和.69是后端Web Server地址。
  • HAProxy的日志配置策略
       默認情況下,HAProxy沒有配置日志輸出功能,但是為了管理和維護方便,日志的輸出很有必要,這里簡單介紹下HAProxy如何啟用日志功能:
      

       ①首先在global段開啟,一般默認是開啟的;

    vim /etc/haproxy/haproxy.conf
    global
        log         127.0.0.1 local2

       ②以rsyslog管理系統日志為例:
        

    vim /etc/rsyslog.conf
    $ModLoad imudp
    $UDPServerRun 514                                   #啟用相關協議與監聽接口
    local2.*          /var/log/haproxy.log            #設置日志輸出路徑
    systemctl restart rsyslog.service

         

  • frontend與backend簡單示例
    實現將來自用戶的80端口的http請求轉發至后端8000上的server服務:

        ①編輯Web Server主配置文件(/etc/httpd/conf/httpd.conf),找到約在42行的Listen 80,并在下面追加:

Listen 8000

        并且在兩臺web服務器的首頁添加內容以示區別。

        ②編輯haproxy主配置文件如下:

frontend  main :80         #:80代表匹配任意源地址且源端口為80的請求
    
        default_backend websrvs
backend websrvs
    
        balance     roundrobin      #輪詢調度
    
        server web1 192.168.1.68:8000 check
    
        server web2 192.168.1.69:8000 check     #check用于做健康狀態檢測

        ③啟動haproxy

  • 實例效果

    web1.jpgweb2.jpg

原創文章,作者:Net21_charles,如若轉載,請注明出處:http://www.www58058.com/24613

(1)
Net21_charlesNet21_charles
上一篇 2016-07-22
下一篇 2016-07-22

相關推薦

  • shell編程2

    組合測試條件  第一種方式:        COMMAND1 && COMMAND2 并且        COMMAND1 || COMMAND2 或者        ! COMMAND 非   &nbs…

    Linux干貨 2016-08-21
  • Linux磁盤管理

    設備文件 一切皆文件 open(), read(), write(), close() 磁盤結構 磁盤接口類型 并行 IDE:133MB/s SCSI:640MB/s 串口 SATA:6Gbps SAS:6Gbps USB:480MB/s rpm rotationsper minute 硬盤每分鐘轉數 硬盤結構  圖一…

    Linux干貨 2016-08-30
  • vim編輯器

                在Linux的學習中,無論是編寫腳本還是修改文件內容,我們最經常用的就是vim編輯器.vim編輯器功能十分強大,如今不僅僅只應用在Linux中.今天就來介紹一下vim編輯器的功能 進入和退出vim     進入:   在終端輸入vim 文件名 ,…

    Linux干貨 2017-08-05
  • RAID磁盤列陣

                            RAID   RAID是英文Redundant Array o…

    Linux干貨 2016-09-07
  • LAMP 編譯安裝基于2.4

    一 安裝前準備 說明:     操作系統:CentOS 6.7 64位     MySQL數據庫版本:mariadb-5.5.48-linux-x86_64.tar.gz     Apache 版本:httpd-2.4.12.tar.bz2…

    Linux干貨 2016-11-21
  • Linux磁盤與文件系統管理的一些命令

    fdisk fdisk命令用于觀察硬盤實體使用情況,也可對硬盤分區。它采用傳統的問答式界面,而非類似DOS fdisk的cfdisk互動式操作界面,因此在使用上較為不便,但功能卻絲毫不打折扣。 輸入m列出可以執行的命令 p:顯示磁盤分區表 n:new,新建分區 d:delete,刪除分區 t:更改系統類型 l:列出已知分區類型 w:保存并退出 q:不保存退出…

    Linux干貨 2017-04-23

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-07-22 10:46

    寫的很好,排版還可以在漂亮一點,用5w1h的思想寫,加油

欧美性久久久久