day10-07-Haproxy
安装Haproxy
yum install haproxy
# haproxy的服务器都是用同样的配置。【需要说明,因为后面访问的是mysql,因此需要使用四层负载均衡,mode需要选择tcp
global
log /dev/log local0 info #日志相关
log /dev/log local1 notice
maxconn 4096
chroot /var/lib/haproxy
stats timeout 30s
user haproxy
group haproxy
daemon
#debug
#quiet
#pidfile /usr/local/haproxy/haproxy.pid
# Default SSL material locations
ca-base /etc/ssl/certs
crt-base /etc/ssl/private
# Default ciphers to use on SSL-enabled listening sockets.
# For more information, see ciphers(1SSL). This list is from:
# https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/
ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
ssl-default-bind-options no-sslv3
defaults
log global
mode tcp #修改:mode http ---->mode tcp
option tcplog #修改:option httplog--->option tcplog
option dontlognull
#retries 3
#option redispatch
#maxconn 2000
timeout connect 10s #修改:连接超时时间
timeout client 60s #修改:连接客户端超时时间
timeout server 60s #修改:连接服务器端超时时间
listen mysql-cluster
bind *:6666 #代理端口
mode tcp #模式 TCP
option mysql-check # user root #mysql健康检查 root为mysql登录用户名
balance roundrobin #调度算法
server mysql1 192.168.1.11:3306 check port 3306 #weight 1 check inter 1s rise 2 fall 2 #健康检查加上check
server mysql2 192.168.1.8:3306 check port 3306 #weight 1 check inter 1s rise 2 fall 2
listen stats #监控
mode http
option httplog
bind 0.0.0.0:8888
stats enable
stats refresh 30s #设置统计页面自动刷新时间
stats uri /dbs
stats realm welcome login\ Haproxy
stats auth admin:admin
stats admin if TRUE
# HA配置另一种写法
listen proxy-mysql 0.0.0.0:23306
mode tcp
balance roundrobin
option tcplog
option mysql-check user haproxy #在mysql中创建无任何权限用户haproxy,且无密码
server MySQL1 192.168.1.191:3306 check weight 1 maxconn 2000
server MySQL2 192.168.1.192:3306 check weight 1 maxconn 2000
option tcpka
# HA配置另一种写法
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend mysql
mode tcp
bind *:6039
default_backend back_mysql
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend back_mysql
mode tcp
balance roundrobin
server db1 10.9.8.201:3306 check
server db2 10.9.8.223:3306 check
检测修改文件配置结果
haproxy -f /etc/haproxy/haproxy.cfg -c
Configuration file is valid (配置有效)
systemctl restart haproxy (重启服务)
验证结果
在浏览器中输入:http://10.0.50.61:8888/dbs
弹出登录对话框:
用户名:admin 密码为:admin
连接测试
mysql -h 10.0.50.61 -P 6666 -u root -D mysql -p

浙公网安备 33010602011771号