負載均衡工具 haproxy 單機安裝部署完整流程

負載均衡是系統設計最常見的一種方式,Nginx、HAProxy、LVS、F5用得比較普遍,不過Nginx只能在HTTP層負載,而HAProxy即可以在7層做負載,也可以在4層做負載,LVS配置有點太麻煩。
HAProxy是免費、極速且可靠的用於爲TCP和基於HTTP應用程序提供高可用、負載均衡和代理服務的解決方案,尤其適用於高負載且需要持久連接或7層處理機制的web站點。HAProxy還可以將後端的服務器與網絡隔離,起到保護後端服務器的作用。HAProxy的負載均衡能力雖不如LVS,但也是相當不錯,而且由於其工作在7層,可以對http請求報文做深入分析,按照自己的需要將報文轉發至後端不同的服務器(例如動靜分離),這一點工作在4層的LVS無法完成。
haproxy的安裝,haproxy官網下載地址:http://www.haproxy.org/download/

haproxy 常用命令:

命令 說明
/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg 啓動haproxy 服務
ps -ef |grep haproxy 查看haproxy 服務的進程狀態
killall haproxy 停止haproxy 服務
注: 執行killall haproxy命令的前提就是,不能又進行調用haproxy服務,例如:keepalived正在調用 haproxy服務,執行killall haproxy命令無效

重新啓動haproxy 服務

/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg -st `cat /var/run/haproxy.pid`
注:haproxy安裝路徑

一、Haproxy簡介

HAProxy是一款提供高可用性、負載均衡以及基於TCP和HTTP應用的代理軟件,HAProxy是完全免費的、藉助HAProxy可以快速並且可靠的提供基於TCP和HTTP應用的代理解決方案。
HAProxy適用於那些負載較大的web站點,這些站點通常又需要會話保持或七層處理。 
HAProxy可以支持數以萬計的併發連接,並且HAProxy的運行模式使得它可以很簡單安全的整合進架構中,同時可以保護web服務器不被暴露到網絡上。

二、Haproxy 安裝實戰操作

PS:119、120 節點同時安裝Haproxy,下面步驟同步操作

2.1. 下載環境+工具依賴包

yum install gcc vim wget

2.2.下載 haproxy

wget https://src.fedoraproject.org/repo/pkgs/haproxy/haproxy-2.1.2.tar.gz/sha512/929d244a67f93337e3c791b1a29f9643ac288acdf0090dc7a05c72caf61c3b04ef376b84737351f0c54d58bca66ed8af18faa20ec3adc97067313732e0dfcd7d/haproxy-2.1.2.tar.gz

注:官網下載太慢
建議使用傳送門
各個版本鏈接如下:
https://src.fedoraproject.org/repo/pkgs/haproxy/

2.3. 解壓haproxy

tar -zxf haproxy-2.1.2.tar.gz -C /app/

2.4. 進入解壓目錄、進行編譯、安裝haproxy

#進入指定的解壓目錄
cd /app/haproxy-2.1.2/
#對haproxy進行源碼編譯
make TARGET=linux31 PREFIX=/app/haproxy
#安裝 編譯好的haproxy 並指定安裝目錄(根據公司要求)
make install PREFIX=/app/haproxy
#創建haproxy目錄放置配置文件
mkdir /etc/haproxy
#賦權
groupadd -r -g 149 haproxy
useradd -g haproxy -r -s /sbin/nologin -u 149 haproxy
#創建haproxy配置文件
touch /etc/haproxy/haproxy.cfg
Haproxy配置
PS:haproxy 配置文件haproxy.cfg詳解
vim /etc/haproxy/haproxy.cfg

給120服務器將此配置文件同步到/etc/haproxy目錄下面
記得要修改一下haproxy的ip地址

2.5. 創建+配置haproxy配置文件

#創建haproxy配置文件
touch /etc/haproxy/haproxy.cfg
#Haproxy配置
PS:haproxy 配置文件haproxy.cfg詳解
vim /etc/haproxy/haproxy.cfg

添加內容如下:

#logging options
global
	log 127.0.0.1 local0 info #日誌輸出配置,所有日誌都記錄在本機,通過local0輸出
	maxconn 5120
	chroot /app/haproxy #haproxy 安裝路徑
	uid 99 #所屬運行的用戶uid
	gid 99 #所屬運行的用戶組
	daemon  #後臺運行
	quiet
	nbproc 20
	pidfile /var/run/haproxy.pid #指定PID文件路徑

defaults
	log global
	#使用4層代理模式,"mode http"7層代理模式
	mode tcp
	#if you set mode to tcp,then you nust change tcplog into httplog
	option tcplog
	option dontlognull
	retries 3
	option redispatch
	maxconn 2000
	#連接超時時間
	timeout connect 5s
        #客戶端空閒超時時間爲 60秒 則HA 發起重連機制
        timeout client 60s
        #服務器端連接超時時間爲 15秒 則HA 發起重連機制
        timeout server 15s	

#front-end IP for consumers and producters
listen rabbitmq_cluster
	bind 0.0.0.0:5672  #綁定協議端口
	#配置TCP模式
	#所處理的類別,默認採用http模式,可配置成tcp作4層消息轉發
	mode tcp
	#balance url_param userid
	#balance url_param session_id check_post 64
	#balance hdr(User-Agent)
	#balance hdr(host)
	#balance hdr(Host) use_domain_only
	#balance rdp-cookie
	#balance leastconn
	#balance source //ip
	#簡單的輪詢
	balance roundrobin
	#負載均衡策略
	#rabbitmq集羣節點配置 #inter 每隔五秒對mq集羣做健康檢查, 2次正確證明服務器可用,2次失敗證明服務器不可用,並且配置主備機制
        server mq-01 192.168.0.115:5672 check inter 5000 rise 2 fall 2
        server mq-02 192.168.0.117:5672 check inter 5000 rise 2 fall 2
        server mq-03 192.168.0.118:5672 check inter 5000 rise 2 fall 2
#配置haproxy web監控,查看統計信息
listen stats
	bind 192.168.0.119:8100 #前端瀏覽器中查看統計的WEB界面地址
	mode http
	option httplog #日誌類別,採用httplog
	stats enable
	stats auth admin:123456  #設置查看統計的賬號密碼
	#設置haproxy監控地址爲http://localhost:8100/rabbitmq-stats
	stats uri /rabbitmq-stats
	stats refresh 5s  #5s刷新一次

注:以上配置基於haproxy-2.1.2 版本,低版本有部分差異

2.6. 啓動haproxy

/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg
注: -f 指定啓動的配置文件

2.7. 查看haproxy進程狀態

ps -ef | grep haproxy

119 haproxy 服務器進程狀態:
在這裏插入圖片描述

三、瀏覽器訪問+驗證 haproxy

PS:訪問如下地址可以對rmq節點進行監控:
http://192.168.0.119:8100/rabbitmq-stats

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章