----->>>>>>部署HAProxy服务器<<<<<<<-----
1)配置网络,安装软件
yum -y install haproxy
2)修改配置文件
vim /etc/haproxy/haproxy.cfgglobal log
…
listen websrv-rewrite 0.0.0.0:80
balance roundrobin
server web1 192.168.2.100:80 check inter 2000 rise 2 fall 5
server web2 192.168.2.200:80 check inter 2000 rise 2 fall 5
…
定义web服务器可多台…
3)启动服务器并设置开机启动
systemctl start haproxy
systemctl enable haproxy
----->>>>>>keepalived绑定haproxy实现高可用<<<<<<-----
安装Keepalived软件
注意:两台haproxy服务器做相同的操作
web1 ~]# yum install -y keepalived
web2 ~]# yum install -y keepalived
修改两台haproxy服务器Keepalived配置文件
vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id web-haproxy-0001
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_iptables
}
vrrp_instance VI_1 {
state MASTER >>>> //主服务器为MASTER(备服务器需要修改为BACKUP)
interface eth0 //定义网络接口
virtual_router_id 51 //主备服务器VRID号必须一致
priority 100 //服务器优先级,优先级高优先获取VIP
advert_int 1 authentication {
auth_type pass auth_pass 1111 >>> //主备服务器密码必须一致 }
virtual_ipaddress {
//谁是主服务器谁获得该VIP(实验需要修改)192.168.4.80 }
}
real_server 192.168.4.100 80 { //设置后端web服务器的真实IP(实验需要修改)
weight 1 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3 }
}
real_server 192.168.4.200 80 { //设置后端web服务器的真实IP(实验需要修改)
weight 2 //设置权重为1
TCP_CHECK { //对后台real_server做健康检查(实验需要修改)
connect_timeout 3
nb_get_retry 3
delay_before_retry 3 }
}
3)启动两台服务器服务
systemctl start keepalived
haproxy服务器上定义集群,再让keepalived定义虚拟ip也是在haproxy服务器上安装的keepalived,访问keepalived的虚拟ip时相当于访问集群。
注意:仔细观看以上内容
总体配置对应解释:
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id web-haproxy-0001
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
vrrp_iptables
}
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id web-haproxy-0001
vrrp_skip_check_adv_addr
vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}