环境:
master | 192.168.76.3 |
backup | 192.168.76.4 |
vip | 192.168.76.123 |
www.zb.com | 192.168.76.5 |
static.zb.com | 192.168.76.6 |
video.zb.com | 192.168.76.7 |
1.先给web服务器配置。
echo www.zb.com>/var/www/html/index.html
echo static.zb.com>/var/www/html/index.html
echo video.zb.com>/var/www/html/index.html
2.配置master的haproxy
安装haproxy,这里选择的yum安装 yum install haproxy -y
修改配置文件:
global #全局配置
log 127.0.0.1 local3 info #日志
maxconn 4096 #最大连接
uid nobody
gid nobody
daemon
nbproc 1 #处理进程数量
pidfile /run/haproxy.pid
defaults #默认配置
log global #按照全局配置
mode http #类型
maxconn 2048 #最大连接数
retries 3 #尝试三次健康检查
option redispatch #重新匹配
#contimeout 5000 #连接sh计时器
#clitimeout 50000 #
#srvtimeout 50000
timeout connect 5000
timeout client 50000
timeout server 50000
option abortonclose #关闭选项
stats uri /admin?stats #管理页面的配置格式
stats realm Private lands #进入管理页面验证
stats auth admin:password #密码
stats hide-version #隐藏版本号
frontend www #代理服务器前端
bind *:80 #绑定地址
mode http
log global
option httplog
option httpclose
#acl html url_reg -i \.html$ #访问控制列表
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 html-server if html
use_backend server_www if host_www
use_backend server_static if host_static
use_backend server_video if host_video
#default_backend html-server
#backend html-server #后端服务器
# mode http
# balance roundrobin
# option httpchk GET /index.html
# cookie SERVERID insert indirect nocache
# server html-A 192.168.76.5:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
# server html-B 192.168.76.6:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
backend server_www
mode http
option redispatch
option abortonclose
balance roundrobin
option httpchk GET /index.html
server webapp1 192.168.76.5:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
backend server_static
mode http
option redispatch
option abortonclose
balance roundrobin
option httpchk GET /index.html
server webapp1 192.168.76.6:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
backend server_video
mode http
option redispatch
option abortonclose
balance roundrobin
option httpchk GET /index.html
server webapp1 192.168.76.7:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
启动服务,修改hosts文件:
然后测试,安装elinks,yum install elinks -y
测试: elinks --dump http:xxx.zb.com
backup的haproxy配置文件与master一样。
3.安装keepalived
yum install keepalived -y
修改配置文件master:
! Configuration File for keepalived
global_defs {
router_id 1 #设备在组中的标识,设置不一样即可
}
#vrrp_script chk_nginx { #健康检查
# script "/etc/keepalived/check_nginx.sh" #检查脚本
# interval 2 #检查频率.秒
# weight -5 #priority减5
# fall 3 #失败三次
# }
vrrp_instance VI_1 { #VI_1。实例名两台路由器相同。同学们要注意区分。
state MASTER #主或者从状态
interface ens33 #监控网卡
mcast_src_ip 192.168.76.3 #心跳源IP
virtual_router_id 55 #虚拟路由编号,主备要一致。同学们注意区分
priority 100 #优先级
advert_int 1 #心跳间隔
authentication { #秘钥认证(1-8位)
auth_type PASS
auth_pass 123456
}
virtual_ipaddress { #VIP
192.168.76.123/24
}
# track_script { #引用脚本
# chk_nginx
# }
}
backup不同之处:
4.测试
之前检测haproxy都配置成功,只需检测keepalived配置是否成功。
先停掉master网络连接。在backup上用ip a查看vip是否跳转到backup上,再开启master网络连接,看vip是否在master上。若在,就配置成功。