CentOS 7安裝和配置HAProxy


本文記錄在CentOS 7環境下使用源碼安裝的方式安裝HAProxy。

HAProxy簡介

HAProxy是一個使用C語言編寫的自由及開放源代碼軟件,其提供高可用性、負載均衡,以及基於TCP和HTTP的應用程序代理。

HAProxy特別適用於那些負載特大的web站點,這些站點通常又需要會話保持或七層處理。HAProxy運行在當前的硬件上,完全可以支持數以萬計的並發連接。並且它的運行模式使得它可以很簡單安全的整合進您當前的架構中, 同時可以保護你的web服務器不被暴露到網絡上。

HAProxy實現了一種事件驅動, 單一進程模型,此模型支持非常大的並發連接數。多進程或多線程模型受內存限制 、系統調度器限制以及無處不在的鎖限制,很少能處理數千並發連接。事件驅動模型因為在有更好的資源和時間管理的用戶空間(User-Space) 實現所有這些任務,所以沒有這些問題。此模型的弊端是,在多核系統上,這些程序通常擴展性較差。這就是為什么他們必須進行優化以 使每個CPU時間片(Cycle)做更多的工作。

包括 GitHub、Bitbucket、Stack Overflow[4]、Reddit、Tumblr、Twitter和 Tuenti在內的知名網站,及亞馬遜網絡服務系統都使用了HAProxy。

安裝HAProxy

  1. 下載

由於到官網下載需要翻牆,這里提供百度雲鏈接。

鏈接: https://pan.baidu.com/s/1uaSJa3NHFiE1E6dk7iHMwQ 提取碼: irz6

  1. 將haproxy-1.7.8.tar.gz拷貝至/opt目錄下,解壓縮:
tar zxvf haproxy-1.7.8.tar.gz
  1. 進入目錄,編譯成可執行文件。

將源代碼解壓之后,需要運行make來將HAProxy編譯成為可執行文件。如果是在Linux2.6系統上面進行編譯的話,需要設置TARGET=linux26以開啟epoll支持,這也是為什么網上許多博客里面都是這么寫的。對於其他的UNIX系統來說,直接采用TARGET=generic方式,本文進行安裝的系統為CentOS7 ,內核3.10版本。

cd haproxy-1.7.8
make TARGET=generic

執行完畢之后,目錄下出現haproxy的可執行文件。

  1. 配置環境變量

為方便使用,可以進行環境變量的配置。在/etc/profile中加入haproxy的路徑:

export PATH=$PATH:/opt/haproxy-1.7.8/haproxy

最后執行source /etc/profile讓此環境變量生效。

配置HAProxy

HAProxy配置文件說明

HAProxy配置文件通常分為三個部分,即global、defaults和listen。global為全局配置,defaults為默認配置,listen為應用組件配置。

global為全局配置部分,屬於進程級別的配置,通常和使用的操作系統配置相關。

defaults配置項配置默認參數,會被應用組件繼承,如果在應用組件中沒有特別聲明,將使用默認配置參數。

以配置RabbitMQ集群的負載均衡為例,在安裝目錄下面新建一個haproxy.cfg,輸入下面配置信息:

global
  #日志輸出配置,所有日志都記錄在本機,通過local0輸出
  log 127.0.0.1 local0 info
  #最大連接數
  maxconn 10240
  #以守護進程方式運行
  daemon

defaults
  #應用全局的日志配置
  log global
  mode http
  #超時配置
  timeout connect 5000
  timeout client 5000
  timeout server 5000
  timeout check 2000

listen http_front #haproxy的客戶頁面
  bind 192.168.72.128:8888
  mode http
  option httplog
  stats uri /haproxy
  stats auth admin:123456
  stats refresh 5s
  stats enable

listen haproxy #負載均衡的名字
  bind 0.0.0.0:5666 #對外提供的虛擬的端口
  option tcplog
  mode tcp
  #輪詢算法
  balance roundrobin
  server rabbit1 192.168.72.128:5672 check inter 5000 rise 2 fall 2
  server rabbit2 192.168.72.128:5673 check inter 5000 rise 2 fall 2
  server rabbit3 192.168.72.128:5674 check inter 5000 rise 2 fall 2

啟動

啟動命令:

/opt/haproxy-1.7.8/haproxy -f /opt/haproxy-1.7.8/haproxy.cfg

驗證是否啟動成功:

[root@localhost haproxy-1.7.8]# lsof -i:8888
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
haproxy 45031 root    3u  IPv4 228341      0t0  TCP localhost.localdomain:ddi-tcp-1 (LISTEN)

在瀏覽器上訪問http://192.168.72.128:8888/haproxy,輸入配置的用戶名和密碼登錄以后,可以看到如下畫面:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM