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 10:08
下一篇 2016-07-22 10:09

相關推薦

  • 第二十周作業

    1、用Keepalived實現nginx與lvs的高可用集群; lvs+keepalived: 1)后端兩臺rs上安裝web服務并創建探測頁面 ~]# yum install nginx -y ~]# systemctl start nginx.service ~]# vim /usr/share/nginx/html/index.html <h1&g…

    2017-07-03
  • 第三周課堂練習

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。 [root@myserver ~]# whoami  root  [root@myserver ~]# who | cut -d' ' -…

    Linux干貨 2016-09-19
  • 學習宣言

    不妥協,不氣餒,朝著自己的目標前進。

    Linux干貨 2016-10-24
  • 程序包管理rpm

    Linux程序包管理      API:Application Program Interface      ABI:Application Binary Interface         Unix…

    Linux干貨 2016-08-23
  • n28 第二周作業

    n28 第二周作業

    Linux干貨 2017-12-09
  • 第8天磁盤管理練習—增加SWAP分區

          SWAP交換空間,指在物理內存不夠用時,充當虛擬內存使用。在實際操作中,使用1-2G的一個分區并指定分區類型為SWAP,掛載至SWAP來使用。 一、新增分區 fdisk /dev/sda n     #新增加分區 t   &nb…

    Linux干貨 2016-07-04

評論列表(1條)

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

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

欧美性久久久久