主机名 | IP | 角色 | 虚拟IP |
node1 | 192.168.164.11 | 主 | 192.168.164.10 |
node2 | 192.168.164.12 | 备 | |
node3 | 192.168.164.20 | 后端 | |
node4 | 192.168.164.21 | ||
node5 | 192.168.164.22 |
1、安装HAproxy、配置日志 --- 查看之前章节
配置文件
global
log 127.0.0.1 local0 info
maxconn 4096
user nobody
group nobody
daemon
nbproc 1
pidfile /usr/local/haproxy/logs/haproxy.pid
defaults
mode http
retries 3
timeout connect 5s
timeout client 30s
timeout server 30s
timeout check 2s
listen admin_stats
bind 0.0.0.0:19088
mode http
log 127.0.0.1 local0 err
stats refresh 30s
stats uri /haproxy-status
stats realm welcome login\ Haproxy
stats auth admin:xxxxxx
stats hide-version
stats admin if TRUE
frontend www
bind 192.168.66.10:80
mode http
option httplog
option forwardfor
log global
acl host_www hdr_dom(host) -i www.zb.com
acl host_static hdr_dom(host)-i static.zb.com
acl host_video hdr_dom(host) -i
video.zb.com
use_backend server_www if host_www
use_backend server_static if host_static
use_backend server_video if host_video
backend server_www --- 其他两个后台服务器参照此配置,(只需修改IP)
mode http
option redispatch
option abortonclose
balance roundrobin
option httpchk GET /index.jsp
server webapp1 192.168.164.20:80 weight 6
check inter 2000 rise 2 fall 3
安装keepalived --- 参考之前文章
配置主备keepalived服务器
在node1主机:keepalived.conf文件
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.200.1
smtp_connect_timeout 30
router_id HAProxy_DEVEL
}
vrrp_script check_haproxy {
script "killall -0 haproxy" #-0 haproxy"仅仅监测HAProxy服务状态
interval 2
weight 21
}
vrrp_instance HAProxy_HA {
state BACKUP
interface eth0
virtual_router_id 80
priority 100
advert_int 2
nopreempt #不抢占模式,只在优先级高的机器上设置即可,优先级低的机器不设置
authentication {
auth_type PASS
auth_pass 1111
}
notify_master "/etc/keepalived/mail_notify.py master "
notify_backup "/etc/keepalived/mail_notify.py backup"
notify_fault "/etc/keepalived/mail_notify.py falut"
track_script {
check_haproxy
}
virtual_ipaddress {
192.168.66.10/24 dev eth0 #HAProxy的对外服务IP,即VIP
}
}
使用python编辑一个发送邮件的脚本
将keepalived.conf文件和发送邮件的脚本文件发送到备用主机node2上。
此时就完成了HAproxy+keepalived的高可用配置。