目录
LVS简介
Linux Virtual Server,负载调度器,内核集成
VS: Virtual Server,负责调度 RS:RealServer,负责真正提供服务
工作原理:
VS根据请求报文的目标IP和目标协议及端口将其调度转发至某RS,根据调度算法来挑选RS
一、实验需求
1、实验设备
一台测试机、一台LVS、两台web服务器
2、设备环境要求
lvs :双网卡 仅主机 和nat
webserver: 仅主机
1.Director 服务器采用双网卡,一个是桥接网卡连接外网,一个是仅主机网卡与后端Web服务器相连
2.Web服务器采用仅主机网卡与director相连
3.Web服务器网关指向192.168.0.100
4.后端web服务器不需要连接外网
二、实验环境搭建
|------------|--------------------------------|----------------|-----------|
| 主机名 | IP | VIP | 角色 |
| lvs | 192.168.0.150 | 172.25.254.150 | 调度器(VS) |
| webserver1 | 192.168.0.10, 网关:192.168.0.150 | null | 真实服务器(RS) |
| webserver2 | 192.168.0.20, 网关:192.168.0.150 | null | 真实服务器(RS) |
| test | 172.25.254.131 | | 测试机 |
1、LVS
bash
vmset.sh eth1 192.168.0.150 lvs.zx.org # 增添一块网卡,设置为"仅主机模式"
vmset.sh eth0 172.25.254.150 lvs.zx.org
# 该命令使用前提------配置有vmset.sh脚本
bash
vim /etc/NetworkManager/system-connections/eth1.nmconnection #修改内容如图片
nmcli connection reload # 修改之后重启
nmcli connection up eth1
在LVS中启用内核路由功能 :
2、webserver1
网卡设置为"仅主机模式",webserver2同样。
bash
vmset.sh eth0 192.168.0.10 webserver1.zx.org
bash
[root@webserver1 ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection
[root@webserver1 ~]# nmcli connection reload
[root@webserver1 ~]# nmcli connection up eth0
3、webserver2
bash
vmset.sh eth0 192.168.0.20 webserver2.zx.org
bash
[root@webserver2 ~]# vim /etc/NetworkManager/system-connections/eth0.nmconnection
[root@webserver2 ~]# nmcli connection reload
[root@webserver2 ~]# nmcli connection up eth0
三、搭建
1、LVS
(1)安装ipvsadm
bash
yum install ipvsadm -y
(2)添加调度策略
cpp
ipvsadm -Ln # 查看策略
cat /etc/sysconfig/ipvsadm-config # 查看策略主配置文件内容
[root@apache ~]# ipvsadm -A -t 172.25.254.150:80 -s rr
# -A:增加虚拟server -t:指定TCP协议 -s:指定调度算法
# 172.25.254.150:80 访问该地址的80端口时调用策略
[root@apache ~]# ipvsadm -a -t 172.25.254.150:80 -r 192.168.0.10:80 -m
[root@apache ~]# ipvsadm -a -t 172.25.254.150:80 -r 192.168.0.20:80 -m
# -a:增加realserver -r:realserver地址 -m:nat模式
2、webserver
(1)安装apache
bash
[root@webserver1 ~]# dnf install httpd -y
[root@webserver2 ~]# dnf install httpd -y
(2)添加测试内容
bash
[root@webserver1 ~]# echo webserver1 - 192.168.0.10 > /var/www/html/index.html
[root@webserver1 ~]# systemctl enable --now httpd # 启用apache服务
[root@webserver2 ~]# echo webserver2 - 192.168.0.20 > /var/www/html/index.html
[root@webserver2 ~]# systemctl enable --now httpd # 启用apache服务
3、在LVS中进行检测测试
4、保存调度命令
bash
[root@lvs ~]# ipvsadm-save
[root@lvs ~]# ipvsadm-save > /etc/sysconfig/ipvsadm