一、实现haproxy+keepalived集群高可用集群转发
ip地址192.168.248.222和192.168.248.223安装两个nginx网站,
ip地址192.168.248.220和192.168.248.221都安装haproxy和keepalived,实现负载和高可用。
实验环境,关闭防火墙和selinux,以免影响拍错
~]#systemctl disable firewalld
~]#systemctl stop firewalld
1、两台后端配置nginx网站(192.168.248.222和192.168.248.223)
下载nginx yum源
~]#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
清楚yum缓存并验证yum配置成功
~]#yum clean all
~]#yum repolist
安装nginx ]#yum install nginx
配置nginx
~]#vi /etc/nginx/conf.d/zidingyi.conf
server {
listen 80;
server_name localhost;
root /data;
}
两台node节点分别新建文件
192.168.248.223节点
~]# vi /data/index.html
hello 223
192.168.248.222节点
~]# vi /data/index.html
222 welcome
在本机验证两个网正常访问
2、配置haproxy(192.168.248.220和192.168.248.221)
两台node设置一样
安装haproxy和设置开机自启
~]# yum install haproxy
~]# systemctl enable haproxy
配置haproxy
~]# vi /etc/haproxy/haproxy.cfg
global和defaults默认配置不动,修改
frontend web_port_http_nodes
bind 0.0.0.0:80 #绑定本机的那个端口
default_backend web_prot_http_nodes
backend web_prot_http_nodes
balance roundrobin #设为轮训
server web1 192.168.248.222:80 check
server web2 192.168.248.223:80 check
重新启动haproxy
查看80端口是否打开
~]# ss -tnl
浏览器访问,确认两个网站是否轮询打开
3、配置安装keepalived (192.168.248.220和192.168.248.221)
~]# yum install keepalived
启动并设置开机自启
~]#systemctl enable keepalived
~]#systemctl start keepalived
修改配置文件vi /etc/keepalived/keepalived.conf,vip地址为192.168.248.248
192.168.248.220设置为主
global_defs {
router_id keep
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.248.248
}
}
192.168.248.221设置为备
global_defs {
router_id keep
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.248.248
}
}
重启keepalived服务
systemctl restart keepalived
查看主几点网络ip
~]# ip a l确认192.168.248.248在网卡上配置
使用浏览器访问 192.168.248.248,验证是否轮询调度
关掉主节点,查看从节点VIP是否配置,并用浏览器再次验证
二、实现LVS+keepalived高可用集群
ip地址192.168.248.222和192.168.248.223安装两个nginx网站,
ip地址192.168.248.220和192.168.248.221都安装lvs和keepalived,实现负载和高可用。
实验环境,关闭防火墙和selinux,以免影响排错
~]#systemctl disable firewalld
~]#systemctl stop firewalld
1、两台后端配置nginx网站(192.168.248.222和192.168.248.223)
下载nginx yum源
~]#rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
清楚yum缓存并验证yum配置成功
~]#yum clean all
~]#yum repolist
安装nginx ]#yum install nginx
配置nginx
~]#vi /etc/nginx/conf.d/zidingyi.conf
server {
listen 80;
server_name localhost;
root /data;
}
两台node节点分别新建文件
192.168.248.223节点
~]# vi /data/index.html
hello 223
192.168.248.222节点
~]# vi /data/index.html
222 welcome
在本机验证两个网正常访问
2、设置nginx节点内核参数
/sbin/ifconfig lo:0 192.168.248.248 netmask 255.255.255.255 broadcast 192.168.248.248
/sbin/route add -host 192.168.248.248 dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
3、在keep上安装keep和lvs
~]#yum -y install keepalived
~]# yum install -y ipvsadm
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.248.248
}
}
virtual_server 192.168.248.248 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
protocol TCP
real_server 192.168.248.222 80 {
weight 1
TCP_CHECK {
connect_timeout 1
nb_get_retry 1
delay_before_retry 1
connect_port 80
}
}
real_server 192.168.248.223 80 {
weight 1
TCP_CHECK {
connect_timeout 1
nb_get_retry 1
delay_before_retry 1
connect_port 80
}
}
备份节点修改state为BACKUP和权重priority(小于100)
测试
查看lvs转发状态
~]# ipvsadm -Ln
使用客户端curl测试