Haproxy的基礎應用!

        本篇博客主要是和大家共同了解一下Haproxy的功能與基礎應用,目的是更加熟練的掌握Haproxy的工作原理,為將來的工種中做好鋪墊!

      本篇博客共分為兩個部分:

                                          ⊙ Haproxy的簡介

                                          ⊙ Haproxy作為負載均衡器的基礎配置


       ⊙ Haproxy的簡介:


        Haproxy是工作在偽四層的負載均衡軟件的實現方式,haproxy是TCP/HTTP服務的反代,基于我們靜態分配的cooclks來完成http協議的請求調度,可以基于服務器的持久連接來實現負載均衡。haproxy進入了商業版本以后,就進入了快速迭代周期,目前正在維護的版本有 1.4  1.5  1.6  1.7的 和正在測試的1.8版本。haproxy與keepalived一樣,重CentOS6.4以后開始被收錄到base倉庫,隨系統反向光盤直接提供,由此,我們可以看到他的市場占有率和被大眾接受的程度,同時,他的可靠性也足以被驗證;haproxy是隨base倉庫提供的,但nginx沒有,還屬于epel倉庫才有。也就意味著,我們將來要配置使用haproxy要比使用nginx還要容易一些。至少從來源方面來說如此;

        我們可以用先查看一下base倉庫中提供的版本,然后在官方文檔中查看響應的手冊;他的官方主頁為: haproxy.org; 其文檔位于: http://cbonte.github.io/haproxy-dconv/

      我們可以直接使用命令: yum -y install haproxy 進行安裝;安裝完成后,我們可以看到:

      主程序: /usr/sbin/haproxy

      主配置文件: /etc/haproxy/haproxy.dfg

      unit file: /usr/lib/systemd/system/haproxy.service

      進入到主配置文件中,我們可以看到大體上分為兩段:

      global:全局配置段,進程及完全配置相關的參數,性能調整相關參數,Debug參數;

      proxies:代理配置段;

      我們先來看代理配置段,代理配置段又分為四個組件:

                                         defaults:定義前端和后端公共參數的默認值;

                                         frontend:用來定義如何接受用戶請求的server;

                                         backend:用來定義如何將后端服務器歸并成組,而且能做負載均衡調度的;

                                         listen:    一個前端和一個后端定義在一起,此前端只調用此后端,此后端只供應此前端;

         這些我們都把它統稱為代理配置段,這些前端,后端是用來定義代理功能是如何工作的,但是作為haproxy應用程序來說,自己以哪個用戶身份運行,與代理無關,我們監聽在哪個端口上與代理有關系,但是作為global自己來講,我們運行為幾層結構模式?啟動多少個子進程?等等。與代理也沒有關系。這些都是程序級配置,我們都把他放在global全局配置段中,所有程序自身工作屬性的配置段,都在global中,而代理的配置段,要在代理配置斷種;整個haproxy就是這般配置的!


 ⊙ Haproxy作為負載均衡器的基礎配置


      好了,說了這么多,現在我們來配置一個簡單的負載均衡進群,首先,我們需要準備三臺主機,在這里,我們都是使用的CentOS7.3系統的,第一個作為haproxy調度器,后兩臺做后端服務器,我們先在后端服務器上下載安裝上httpd,然后分別設置他們的訪問頁面,如圖0516-01.jpg所示;然后使用命令:systemstl start httpd 啟動它們,使用 ss -tnl 可以看到80端口已然開啟,清除防火墻,關閉selinux,以免成為不必要的阻礙。至此,兩臺后端主機配置完畢,在這里需要說明一下,理論上后端的兩臺服務器應該使用私網Ip,并且前端調度器有一個公網Ip和一個私網Ip,并能夠與兩臺后端服務器的私網Ip互相通信,在這里我們主要用來haproxy的調度功能,所以方便起見,我們都是有的公網Ip;

                     Haproxy的基礎應用!

                     Haproxy的基礎應用!

                                                     示圖: 0516-01.jpg

      然后我們再來配置haproxy調度器,先使用命令 yum -y install haproxy 下載安裝haproxy,安裝完成后,我們來看一下它生成的一下文件,其主配置文件為/etc/haproxy中的haproxy.dfg;主進程為/usr/sbin/haproxy;其他的則為一些輔助文件,下面,我們進入到主配置文件中,前面已經對主配置文件的結構進行了介紹,所以在這里我們可以直接進行配置;

      配置haproxy為一個web server負載均衡調度器其實非常簡單,我們只需要更改幾個參數即可,我們先來配置frontend段,main表示主server,我們可以隨意定義,但是需要注意的是一定不能重復,包括bcakend段中的也是,這里,我們命名為marui,然后把端口改為webfuwu默認的80端口,中間的都可以刪除,只留下default_backend即可,并把app改為backend段的名稱即可,然后再來配置backend段,balance為負載均衡的調度算法,roundrobin為輪詢算法,這兩個參數不用動,把server在復制一行,進行配置,把后端兩個服務器的IP:PORT寫入即可,具體配置如圖所示;至此,配置完成!


                Haproxy的基礎應用!

                                                                示圖: 0516-02.jpg


        啟動服務: systemctl start haproxy 使用 ss -tnl 查看調度器80端口已然開啟,清除防火墻,關閉selinux,全部設定完成后,我們就可以使用瀏覽器進行訪問調度器地址了!


                Haproxy的基礎應用! 

                Haproxy的基礎應用!

                                                       示圖: 0516-03.jpg

           

                刷新瀏覽器,可以看到他會在30和20之間來會調度,自此,一個簡單的haproxy負載均衡調度器就配置完成啦!是不是非常easy!但是,這只是haproxy的極小的一部分,haproxy還有許許多多的配置參數等待著我們一一去學習,本篇博客就先介紹這些,對于haproxy更深入的了解使用,我們下篇繼續!



















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

(0)
MaruiMarui
上一篇 2017-05-16
下一篇 2017-05-17

相關推薦

  • 常用命令總結

    ifconfig查看IP地址 date查看日期和時間 cd跳轉到任何目錄 useradd新建一個普通用戶 passwd給用戶設置密碼 poweroff   halt    關機 reboot  重啟 cal  查看日歷 cal -y 查看一年日歷 env  export&nbsp…

    Linux干貨 2017-04-04
  • Linux磁盤管理工具

    掛載mount          掛載:將額外文件系統與根文件系統某現存的目錄建立起關聯關系,                 進而使得此目錄做為其它文件訪問入口的行為         &n…

    Linux干貨 2016-08-29
  • 計算機及Linux系統基礎簡介

    一、計算機的組成及其功能 計算機由運算器,控制器,存儲器,輸入裝置和輸出裝置五大部件組成計算機,每一部件分別按要求執行特定的基本功能。 運算器或稱算術邏輯單元(Arithmetical and Logical Unit) 運算器的主要功能是對數據進行各種運算。這些運算除了常規的加、減、乘、除等基本的算術運算之外,還包括能進行“邏輯判斷”的邏輯處理能力,即“與…

    Linux干貨 2017-07-02
  • Redis數據庫安全手冊

    Redis是一個高性能的key-value數據庫,這兩年可謂火的不行。而Redis的流行也帶來一系列安全問題,不少攻擊者都通過Redis發起攻擊。本文將講解這方面的內容,包括Redis提供的訪問控制和代碼安全問題,以及可以由惡意輸入和其他類似的手段觸發的攻擊。 Redis通用安全模塊 Redis被設計成只能由可信環境的可信機器訪問。這意味著將它直接暴露在互聯…

    2015-03-12
  • find文件查找

    文件查找      在文件系統上查找符合條件的文件:      實現工具:locate,find locate:      構建于實現構建好的索引庫:/var/lib/mlocate/mlocate.db   &nbsp…

    Linux干貨 2016-08-22
  • 流編輯器Sed(Stream Edit)詳解

    流編輯器Sed(Stream Edit)詳解       Grep 、sed 和awk并稱為文本三劍客。使用Grep就可以很好的實現文本查找的功能,而且簡單有效。然而其卻無法直接對其進行編輯,sed的出現便解決了這一問題。 Sed被稱為流編輯器,它是一種新型的非交互式的文本編輯器,它逐行處理文件或輸入,并將結…

    Linux干貨 2016-08-22
欧美性久久久久