理论部分
Nginx与LVS对比
nginx是基于反向代理的负载均衡,是七层负载均衡。客户端和Nginx是要进行3次握手、四次分手的。
LVS是基于四层(也可以说三层半)的负载均衡。没有三次握手四次分手,只是在四次偷窥数据包中的IP地址、MAC地址、端口号等,然后就把数据包转发给了真实服务器。所以性能比七层负载均衡的Nginx要强很多。
keepalived功能推导
实验手册
实操部分
node01清空LVS
# 查看偷窥列表,经过了一段时间,偷窥列表已经清空了
ipvsadm -lnc
# 查看ipvsadm列表
ipvsadm -ln
# 清空ipvsadm列表
ipvsadm -C
访问 http://192.168.174.100
清空VIP
# 查看网卡接口
ifconfig
# 停掉网卡
ifconfig ens33:3 down
node01安装keepalived(主)
node01安装keepalived
# 安装keepalived
yum install keepalived -y
node01配置keepalived
# 进入配置文件目录
cd /etc/keepalived
# 查看目录
ls
# 拷贝配置文件
cp keepalived.conf keepalived.conf.bak
# 打开配置文件
vim keepalived.conf
# 修改配置文件
vrrp_instance VI_1 {
state MASTER
interface eth0
改成
vrrp_instance VI_1 {
state MASTER
interface ens33 # 改这行,因为我的物理网卡是ens33
# 在ens33物理网卡接口上,配置子接口ens33:3
# 类比命令 ifconfig ens33:3 192.168.174.100/24
virtual_ipaddress {
192.168.200.16
192.168.200.17
192.168.200.18
}
改成
virtual_ipaddress {
192.168.174.100/24 dev ens33 label ens33:3
}
# 配置管理入口,ens33物理网卡上配置的子接口ens33:3,VIP
# 类比命令 ipvsadm -A -t 192.168.174.100:80 -s rr
virtual_server 192.168.200.100 443 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
改成
virtual_server 192.168.174.100 80 { # 这行改IP、端口
delay_loop 6
lb_algo rr
lb_kind DR # 这行改负载均衡模式,NAT模式改成DR模式
nat_mask 255.255.255.0 # 这行加上掩码配置
persistence_timeout 0 # 这行把负载均衡路线存留时间50改成0
protocol TCP
# 配置管理出口 real server node02
# 类比命令 ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.12 -g -w 1
# 类比命令 ipvsadm -a -t 192.168.174.100:80 -r 192.168.174.13 -g -w 1
real_server 192.168.201.100 443 {
weight 1
SSL_GET {
url {
path /
digest ff20ad2481f97b1754ef3e12ecd3a9cc
}
url {
path /mrtg/
digest 9b3a0c85a887a256d6939da88aabd8cd
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
改成
real_server 192.168.174.12 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.174.13 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
node01启动keepalived
# 启动
service keepalived start
访问 http://192.168.174.100,F5刷新几次页面
查看偷窥列表
node04安装keepalived(备)
node04安装keepalived、ipvsadm
# 安装keepalived、ipvsadm
yum install keepalived ipvsadm -y
node04配置keepalived
# 进入配置文件目录
cd /etc/keepalived
# 查看目录
ls
# 删除配置文件
rm -rf keepalived.conf
# 拷贝配置文件(从node01远程拷贝keepalived.conf到node04的相同目录下)
scp keepalived.conf root@192.168.174.14:`pwd`
# 查看目录,keepalived.conf在目录下
ls
# 查看配置文件
cat keepalived.conf
# virtual_ipaddress {
# 192.168.174.100/24 dev ens33 label ens33:3
# }
# 是我们在node01中配置的,说明远程拷贝成功
# 修改配置文件
# node04作为备机,需要修改配置文件MASTER-->BACKUP,权重调低100-->50
/*
vrrp_instance VI_1 {
state BACKUP # 备机,改成BACKUP
interface ens33
virtual_router_id 51
priority 50 # 备机,权重调低
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.174.100/24 dev ens33 label ens33:3
}
}
*/
# 启动
service keepalived start
删除配置文件
拷贝配置文件(从node01远程拷贝keepalived.conf到node04的相同目录下)
查看配置文件
修改配置文件
启动
访问 http://192.168.174.100,一直转圈圈,过一会,无法访问网站
备机下线,ens33:3没有了
访问 http://192.168.174.100,正常了
备机上线
访问 http://192.168.174.100,还是失败,同上
主机下线
访问 http://192.168.174.100
备机没起作用,备机下线,主机上线
上面备机不起作用的问题
简单描述:备机启动,不应该出现VIP却出现了,反复试了几次,只要启动备机的keepalived服务,VIP网卡就会出现。然后,两个相同的VIP暴露在外网, http://192.168.174.100就访问不了了,一直转圈圈,过一会显示“无法访问次网站”。
问题出在哪里?一定是备机配置有问题,但是配置是从node01远程拷贝过来,只改了MASTER --> BACKUP,和权重100–>50,其它都没改。
所以问题具体出在哪里了呢?
答:// TODO ~ 等我搞清楚了再继续写吧
补充知识点
安装使用man
安装man
命令:yum install man -y
使用man
# 查看配置文件使用第5类
man 5 keepalived.conf
# 查找virtual_ipaddress配置
# 按 Esc,再按 / 输入想要查找的内容,如:virtual_ipaddress