实现基于Keepalived+Haproxy+Varnish+LNMP企业级架构
原理:缓存,又称加速器,用于加速运行速度较快的设备与较慢设备之间的通信。基于程序的运行具有局部性特征其能实现加速的功能
一、环境准备
1.1 相关配置
机器名称 | IP配置 | 服务角色 | 备注 |
---|---|---|---|
haproxy-server-master | VIP:172.17.120.120 RIP:172.17.66.66 | 负载均衡器主服务器 | 配置keepalived |
haproxy-server-backup | VIP:172.17.120.120 RIP:172.17.251.66 | 负载均衡器从服务器 | 配置keepalived |
varnish | 192.168.37.111 | 缓存服务器 | 开启代理功能 |
rs01 | 192.168.37.222 | 后端服务器 | 开启lnmp的web服务 |
rs02 | 192.168.37.100 | 后端服务器 | 开启lnmp的web服务 |
1.2 安装服务
我们需要在相应的机器上安装我们的服务:
1)haproxy-server-master&haproxy-server-backup 上:
yum install haproxy -y
yum install keepalived -y
yum install varnish -y
1.3 关闭防火墙及selinux
iptables -F && setenforing
本步骤完成。
二、配置 Haproxy
我们需要把两个机器的Haproxy都设置好。我们去修改一下Haproxy的配置文件——/etc/haproxy/haproxy.cfg
global段和default段都是设置好的,我们就不需要修改,下面是我们需要修改的部分:
1)frontend段
frontend web
bind *:80
default_backend varnish-server
2)backend段
backend varnish-server
balance roundrobin
server varnishsrv 192.168.37.111:6081 check inter 3000 rise 3 fall 5
3)listen段
listen admin
bind :9527
stats enable
stats uri /haproxyadmin
stats auth admin:admin
stats refresh 20s
stats admin if TRUE
第一台机器设置好了以后,直接使用scp
命令发到第二台机器即可。
然后把两台机器的服务都开启:
service haproxy start
本步骤完成。
三、配置keepalived
3.1 配置 haproxy-server-master (主服务器)
配置文件为/etcc/keeplalived/keepalived.conf
,我们编辑以下三段即可:
1)全局段——设置发送邮件
global_defs {
notification_email {
root@localhost
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id keepalived_haproxy
}
2)编辑健康监测脚本
该脚本作用是对haproxy进行健康监测,每隔2s监测一次haproxy进程。
vrrp_script chk_haproxy {
script "killall -0 haproxy"
interval 2
fall 2
rise 2
weight -4
}
3)定义主从和VIP
vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 170
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass keer
}
virtual_ipaddress {
172.17.120.120
}
track_script {
chk_haproxy
}
}
3.2 配置 haproxy-server-backup (从服务器)
从服务器和主服务器的配置很是相似,我们可以直接使用scp
命令把主服务器的配置文件拷过来,然后,我们只需要把第二段删掉,同时修改一下第三段的主从和优先级即可:
vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 170
priority 98
advert_int 1
authentication {
auth_type PASS
auth_pass keer
}
virtual_ipaddress {
172.17.120.120
}
}
本步骤完成。