实验环境:操作系统linux7 所需软件:ipvsadm,keepalived,httpd,bind,bind-ustil,curl,route 实验要求:代理服务器安装ipvsadm和keepalivd实现负载均衡和冗余备份(防止代理服务器崩溃而导致服务的中断keepalived根据优先级重新选举谁的优先级高选谁),后端服务器部署apache实施管理。 代理服务器给后端服务器做代理服务并进行负载均衡,客户机只能访问的是代理服务器IP,但真正是通过代理服务器访问后端的服务器。因而在代理服务器配置DNS域名解析服务使用户可以通过域名访问服务。 通过lvs和keepalived实现高可用和灾备(HA/DR) IP规划: 客户机CIP 192.168.10.1 代理服务器DIP 192.168.11.11 代理服务器VIP 192.168.10.11 后端服务器RIP 192.168.11.12~14 (后端服务器和代理服务器DIP必须在同一网段) 实验原理图实验架构图
实验部署先配置后端服务器Real server给每台后台服务器配置apache(如果服务器过多可能要用到ansible) yum install -y httpd curl systemctl restart httpd 启动apache服务 echo www.zo12.com > /var/www/html/index.html 配置主页信息(其他后端服务器可改为 www.zo@.com等) curl 127.0.0.1 内测 yum install -y net-tools route -n 查看路由表信息 route del default gw 192.168.11.2 临时关闭默认网关 route add default gw 192.168.11.11 设置临时默认网关 vim /etc/sysconfig/network-scripts/ifcfg-ens33 永久修改网关 GATEWAY=192.168.11.11 (设置为代理服务器IP) 代理服务器配置给代理服务器加一块虚拟网卡并配置ip 设置中添加一块nat 模式的网卡 ip a cd /etc/systemctl/network-scripts cp -av ifcfg-ens33 ifcfg-ens37 vim ifcfg-内容如下(红字为要修改的内容)
安装lvs yum install -y ipvsadm systemctl restart ipvsadm
route -n 查看路由表信息 route del default gw 192.168.11.2 临时关闭默认网关 route del default gw 192.168.10.2 配置LVS负载均衡集群服务列表 ipvsadm -h ipvsadm -Ln ipvsadm -C 清空ipvs集群配置信息 ipvsadm -A -t 192.168.10.11:80 -s rr ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.12:80 -m ipvsadm -a -t 192.168.10.11:80 -r 192.168.11.13:80 -m ipvsadm -Ln ipvsadm -Ln --stats watch -n.5 ‘ipvsadm -Lnc’ watch -n.5 ‘ipvsadm -Ln --rate’ 查看并临时开启路由转发功能 cat /proc/sys/net/ipv4/ip_forward echo 1 > /proc/sys/net/ipv4/ip_forward [root@localhost ~]# vim lo.sh 脚本内容如下 #!/bin/bash ifconfig lo:1 192.168.11.100 netmask 255.255.255.255 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce ip a 运行脚本(在192.168.11.12上做如下操作):
运行脚本(在192.168.11.12上做如下操作): chmod -v +x lo.sh . lo.sh scp lo.sh root@192.168.11.13:/root/ ssh root@192.168.11.13 '. /root/lo.sh' 远程给192.168.11.13运行lo.sh脚本 给代理服务器配置keepalived yum install -y keepaived ipvsadm -C 清除之前的ipvs配置(并在keepalived配置中重新配置) 其实之前的ipvs配置只是练练手感/呲牙/呲牙/呲牙 vim /ect/keepalived/keepalived.conf 进入keepalived配置文件进行配置
! Configuration File for keepalived global_defs { 全局定义,说明:在实验测试环境中,以下内容可以随便写,但是master和backup的router_id必须相同 notification_email { 设置通知邮箱 root@localhost 管理员的邮箱地址 } notification_email_from keepalived@localhost 通知邮件的发件人邮箱 smtp_server 127.0.0.1 邮箱服务器IP地址 smtp_connect_timeout 30 邮件服务器连接超时时间为30秒 router_id dr1 路由器ID名称,同一个keepalived高可用集群中master和backup的ID名称必须相同 }
vrrp_instance VI_1 { vrrp虚拟路由冗余协议的实例设置 ,实例名称为VI_1 state MASTER //状态,主为MASTER,备为BACKUP状态 interface eth0 //心跳检测网卡接口,要根据实际情况写网卡接口名,用ip a查网卡接口名 virtual_router_id 51 //master主和backup备两边必须一样,此处是集群的群号 priority 100 //优先级,MASTER的值必须高于BACKUP的值,类似于现实生活中的竞选的票数 advert_int 1 //检查间隔,单位秒。vrrp的组播地址是224.0.0.18 authentication { 身份认证配置 auth_type PASS //认证类型为密码方式,主备要一致 auth_pass 1111 //认证密码为1111,主备要一致 } virtual_ipaddress { 192.168.10.100 //VIP,可多个IP,每行一个IP地址 } }
virtual_server 192.168.11.100 80 { //LVS 配置 delay_loop 3 //服务论询的时间间隔 lb_algo rr //LVS 调度算法 lb_kind DR // LVS 集群模式 protocol TCP real_server 192.168.11.13 80 { //RS的IP及端口号 weight 1 TCP_CHECK { //RS健康检查 connect_timeout 3 } } real_server 192.168.11.14 80 { weight 1 TCP_CHECK { connect_timeout 3 } } }
# cd /etc/keepalived # scp keepalived.conf 192.168.11.12:/etc/keepalived/ 将配置文件发送给node12的主机 拷贝后,修改配置文件 state BACKUP priority 90
两个Director上启动服务: # systemctl restart keepalived 重启keepalived服务
curl 192.168.11.100 如出现如下内容则再执行一遍lo.sh脚本 给代理服务器配置DNS yum install -y bind bind-ustil systemctl restart named systemctl enable named
cp -v /etc/named.conf{,.bak} cp -v /etc/named.rfc1912.zones{,.bak} sed -i 's/127.0.0.1/any/' /etc/named.conf sed -i 's/localhost/any/' /etc/named.conf systemctl reload named echo ' zone "zo.com" IN { type master; file "zo.com.zone"; allow-update { none; }; allow-transfer { none; }; }; ' >> /etc/named.rfc1912.zones named-checkconf
cd /var/named cp -av named.localhost zo.com.zone echo '$TTL 1D @ IN SOA dns1.zo.com. 1223915635.qq.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns1.zo.com. A 192.168.10.11 AAAA ::1 dns1 A 192.168.10.11 www A 192.168.11.100 ftp A 192.168.11.13 mail A 192.168.11.14 web CNAME www.zo.com.
' > zo.com.zone named-checkzone dns1.zo.com /var/named/zo.com.zone systemctl reload named nslookup www.zo.com 127.0.0.1 nslookup web.zo.com 127.0.0.1 systemctl reload named 在客户机上做测试 nslookup www.zo.com 192.168.11.11 将客户机的C:\Windows\System32\drivers\etc\hosts文件末尾添加域名解析 最后测试结果如下: 因为做了负载均衡为测试实验效果给不同的后端服务器创建了不同的主页所以可能是node14.com也可能是node13.com 如果将多个物理服务器(可以是wed服务器,文件服务器,邮件服务器,数据库服务器,FTP服务器等)虚拟成一台虚拟服务器则可以实现同时访问一个虚拟服务器的信息,同时也只需配置一台虚拟服务器就可以完成。 |
高可用性负载均衡集群网站搭建
精选 原创
©著作权归作者所有:来自51CTO博客作者zo梦的原创作品,谢绝转载,否则将追究法律责任
上一篇:URN,URL和URI
下一篇:win系统zabbix排错
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
haproxy+web 负载均衡高可用性
global maxconn 5120 chroot /usr/local/haproxy &n
职场 web 休闲 负载 haproxy -
通过heartbeat搭建lvs高可用性集群
本文主要讲解通过heartbeat集群软件配置lvs集群。
linux lvs heartbeat linux lvs heartbeat