实验环境:
1.Win10下的VMware 的虚拟机
2.网络链接模式:桥接
3.系统:centos7最小化安装
4.nginx服务也是设置在lvs上
基础准备工作:
1) 绑定静态IP地址/设定主机名 重启服务后ping下百度以及下面看是否通了
192.168.1.232 lvs-master
192.168.1.231 lvs-slave
2) IP地址与主机名的绑定 /etc/hosts
3) 关闭防火墙 service iptables stop(有就关)
配置两台Web服务器
- 安装nginx
快速安装方式:登陆官网<u>http://nginx.org/en/linux_packages.html#stable</u>
Vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
保存后 yum install nginx 即可。
启动服务:nginx -c 到配置文件 这里 nginx –c /etc/nginx/nginx.conf
即可看到:为了区别两台nginx 可在html下的index 进行修改
设置VIP
1、 分别在backup lvs和master lvs上安装lvs
2、
安装方式1:直接yum install ipvsadm
安装方式 2:源码包安装
安装依赖:yum groupinstall 'Development tools' -y
yum install libnl* popt* -y
解压tar包
Make make install 就好了
3.安装好ipvsadm后
①进入指定文件夹:cd /etc/init.d/
②编辑脚本文件:vim realserver.sh
SNS_VIP=192.168.1.230
/etc/rc.d/init.d/functions
case "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
/sbin/route add -host $SNS_VIP 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
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
这里我们设置vip为1.230
chmod 755 realserver 修改权限后 我们执行改脚本即可。
/这个脚本之前需要 安装下ifconfig 不然无法使用 yum install net-tools 最小化安装无ifconfig。
配置主负载服务器
(1) 安装Keepalived相关包:yum install -y keepalived 源码包安装同上
(2) 编辑keepalived.conf配置文件
①进入keepalived.conf所在目录:cd /etc/keepalived
global_defs {
notification_email {
edisonchou@hotmail.com
}
notification_email_from sns-lvs@gmail.com
smtp_server 192.168.80.1
smtp_connection_timeout 30
router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的
}
vrrp_instance VI_1 {
state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备
interface eno16777736 #这个是出口网卡与外网相连的网卡一致。
virtual_router_id 51 #虚拟路由编号,主备要一致
priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
advert_int 1 #检查间隔,默认为1s
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.230 #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个
}
}
# 定义对外提供服务的LVS的VIP以及port
virtual_server 192.168.1.230 80 {
delay_loop 6 # 设置健康检查时间,单位是秒
lb_algo wrr # 设置负载调度
lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
nat_mask 255.255.255.0
persistence_timeout 0
protocol TCP
real_server 192.168.1.232 80 { # 指定real server1的IP地址
weight 3 # 配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.1.231 80 { # 指定real server2的IP地址
weight 3 # 配置节点权值,数字越大权重越高
TCP_CHECK {
connect_timeout 10
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
启动keepalived:service keepalived start
配置完成后:ip a 虚拟ip必须在你对外网卡上才算成功。
配置从负载服务器:
从负载服务器与主负载服务器大致相同,只是在keepalived的配置文件中需要改以下两处:
(1)将state由MASTER改为BACKUP
(2)将priority由100改为99
查看进程是否完全启动:
即可得到: