负载均衡工具 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安裝路徑一、RabbitMQ 集群環境節點說明
| 192.168.0.119 | hk-01 | haproxy+keepalived | 8100 | http://192.168.0.119:8100/rabbitmq-stats |
| 192.168.0.120 | hk-02 | haproxy+keepalived | 8100 | http://192.168.0.120:8100/rabbitmq-stats |
文章目錄
- 一、RabbitMQ 集群環境節點說明
- 一、Haproxy簡介
- 二、Haproxy 安裝實戰操作
- 2.1. 下載環境+工具依賴包
- 2.2.下載 haproxy
- 2.3. 解壓haproxy
- 2.4. 進入解壓目錄、進行編譯、安裝haproxy
- 2.5. 創建+配置haproxy配置文件
- 2.6. 同步+修改配置haproxy文件
- 2.7. 啟動haproxy
- 2.8. 查看haproxy進程狀態
- 三、瀏覽器訪問+驗證 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 wget2.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/
為了節省時間,把下載好的軟件包同步到120服務器
scp haproxy-2.1.2.tar.gz root@192.168.0.120:/app/software2.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 globallog 127.0.0.1 local0 info #日志輸出配置,所有日志都記錄在本機,通過local0輸出maxconn 5120chroot /app/haproxy #haproxy 安裝路徑uid 99 #所屬運行的用戶uidgid 99 #所屬運行的用戶組daemon #后臺運行quietnbproc 20pidfile /var/run/haproxy.pid #指定PID文件路徑defaultslog global#使用4層代理模式,"mode http"為7層代理模式mode tcp#if you set mode to tcp,then you nust change tcplog into httplogoption tcplogoption dontlognullretries 3option redispatchmaxconn 2000#連接超時時間timeout connect 5s#客戶端空閑超時時間為 60秒 則HA 發起重連機制timeout client 60s#服務器端連接超時時間為 15秒 則HA 發起重連機制timeout server 15s #front-end IP for consumers and producters listen rabbitmq_clusterbind 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 2server mq-02 192.168.0.117:5672 check inter 5000 rise 2 fall 2server mq-03 192.168.0.118:5672 check inter 5000 rise 2 fall 2 #配置haproxy web監控,查看統計信息 listen statsbind 192.168.0.119:8100 #前端瀏覽器中查看統計的WEB界面地址mode httpoption httplog #日志類別,采用httplogstats enablestats auth admin:123456 #設置查看統計的賬號密碼#設置haproxy監控地址為http://localhost:8100/rabbitmq-statsstats uri /rabbitmq-statsstats refresh 5s #5s刷新一次注:以上配置基于haproxy-2.1.2 版本,低版本有部分差異
2.6. 同步+修改配置haproxy文件
#將 119 服務器 上的haproxy文件同步至 120 服務器 scp haproxy.cfg root@192.168.0.120:/etc/haproxy將haproxy服務器IP修改一下即可,其他保持默認
#logging options globallog 127.0.0.1 local0 info #日志輸出配置,所有日志都記錄在本機,通過local0輸出maxconn 5120chroot /app/haproxy #haproxy 安裝路徑uid 99 #所屬運行的用戶uidgid 99 #所屬運行的用戶組daemon #后臺運行quietnbproc 20pidfile /var/run/haproxy.pid #指定PID文件路徑defaultslog global#使用4層代理模式,"mode http"為7層代理模式mode tcp#if you set mode to tcp,then you nust change tcplog into httplogoption tcplogoption dontlognullretries 3option redispatchmaxconn 2000#連接超時時間timeout connect 5s#客戶端空閑超時時間為 60秒 則HA 發起重連機制timeout client 60s#服務器端連接超時時間為 15秒 則HA 發起重連機制timeout server 15s #front-end IP for consumers and producters listen rabbitmq_clusterbind 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 2server mq-02 192.168.0.117:5672 check inter 5000 rise 2 fall 2server mq-03 192.168.0.118:5672 check inter 5000 rise 2 fall 2 #配置haproxy web監控,查看統計信息 listen statsbind 192.168.0.120:8100 #前端瀏覽器中查看統計的WEB界面地址mode httpoption httplog #日志類別,采用httplogstats enablestats auth admin:123456 #設置查看統計的賬號密碼#設置haproxy監控地址為http://localhost:8100/rabbitmq-statsstats uri /rabbitmq-statsstats refresh 5s #5s刷新一次注:以上配置基于haproxy-2.1.2 版本,低版本有部分差異
2.7. 啟動haproxy
/app/haproxy/sbin/haproxy -f /etc/haproxy/haproxy.cfg 注: -f 指定啟動的配置文件2.8. 查看haproxy進程狀態
ps -ef | grep haproxy119 haproxy 服務器進程狀態:
120 haproxy 服務器進程狀態:
三、瀏覽器訪問+驗證 haproxy
PS:訪問如下地址可以對rmq節點進行監控:
http://192.168.0.119:8100/rabbitmq-stats
http://192.168.0.120:8100/rabbitmq-stats
總結
以上是生活随笔為你收集整理的负载均衡工具 haproxy 集群安装部署完整流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot整合Editor.m
- 下一篇: 工作流实战_13_flowable 待办