haproxy實現mysql的slave的負載均衡(4)
1.準備好4臺機器
192.168.100.193 master
192.168.100.194 slave
192.168.100.195 slave
192.168.100.196 haproxy
主從已經搭建好,可以參考 上一個文件 主從複製
mysql全部使用預設埠 3306
2.建立一個test使用者 並授權
在主節點執行下面兩條sql就可以
create user ‘test’ @’192.168.100.%’ identified by ‘test’
grant all on *.* to ‘test’ @’192.168.100.%’
3.下載haproxy
用 haproxy-1.7.11.tar.gz下載地址:https://download.csdn.net/download/a375015762/10386539
tar -zxvf haproxy-1.7.11.tar.gz
4.安裝
檢視liunx的系統 版本 cat /proc/version
tar -zxvf haproxy-1.7.11.tar.gz
cd /home/soft/haproxy-1.7.11 執行:
make TARGET=linux26
make install PREFIX=/usr/local/haproxy // PREFIX 指定安裝的路徑
/usr/local/haproxy建立一個 mkdir logs
/usr/local/haproxy建立一個 mkdir conf
/usr/local/haproxy/conf 建立 touch haproxy.cnf
/usr/local/haproxy/conf 建立 echo 1 > haproxy.pid
haproxy.cnf的類容:
global
daemon # 後臺方式執行
nbproc 1
pidfile /usr/local/haproxy/conf/haproxy.pid
defaults
mode tcp #預設的模式mode { tcp|http|health },tcp 是4 層,http 是7 層,health 只會返回OK
retries 2 #兩次連線失敗就認為是伺服器不可用,也可以通過後面設定
option redispatch #當serverId 對應的伺服器掛掉後,強制定向到其他健康的伺服器
option abortonclose #當伺服器負載很高的時候,自動結束掉當前佇列處理比較久的連結
maxconn 4096 #預設的最大連線數
timeout connect 5000ms #連線超時
timeout client 30000ms #客戶端超時
timeout server 30000ms #伺服器超時
#timeout check 2000 #=心跳檢測超時
log 127.0.0.1 local0 err #[err warning info debug]
##balance source
########test1 配置#################
listen test1 #這裡是配置負載均衡,test1 是名字,可以任意
bind 0.0.0.0:3306 #這裡是監聽的IP 地址和埠,埠號可以在0-65535 之間,要避免埠衝突
mode tcp #連線的協議,這裡是tcp 協議
#maxconn 4086
#log 127.0.0.1 local0 debug
server s1 192.168.100.194:3306 check port 3306 #負載的機器
server s2 192.168.100.195:3306 check port 3306 #負載的機器,負載的機器可以有多個,往下排列即可
#################配置登入介面
listen admin_statsbind 0.0.0.0:8888
mode http
stats uri /haproxy
###stats realm Global\ statistics
stats auth xiaoming:xiaoming
啟動haproxy
./usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cnf
http://192.168.111.100:8888/haproxy