| 主机名 | 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的高可用配置。