LVS负载均衡之LVS-NAT搭建Web群集

2022-07-25 09:20:42 浏览数 (1)

实现LVS的NAT模式

其原理及特点详细介绍请看LVS的NAT模式LVS负载均衡之LVS-NAT搭建Web群集

1.实验环境

IP地址规划

客户端访问服务的请求IP地址:VIP 12.0.0.1

Server

IP

系统

Director Server

DIP 192.168.10.1

CentOS7

NFS Server

192.168.10.50

RedHat6

Real Server1

RIP 192.168.10.51

CentOS7

Real Server2

RIP 192.168.10.52

CentOS7

在配置的Director的服务器上添加两块网卡,详细步骤可参考DNS分离解析这篇文章中有介绍,设置外网ens37为VIP,内网ens33为DIP,把两个 real server 的网关设置为 Director 的内网 iP即DIP。

在虚拟机的配置中DIP网络连接方式设置为仅主机模式,Real Server也配置为仅主机模式。

2.安装和配置

yum安装软件

方法一:如果虚拟机网络是仅主机模式,没有网络,可以本地创建yum仓库,然后进行yum安装。

方法二:如果虚拟机网络是NAT模式,有网络,可以在线yum安装。

(1) 配置NFS服务器

安装nfs软件并启动nfs服务

代码语言:javascript复制
yum install nfs-utils -y    #7系统版本需要安装nfs工具包
service rpcbind start  
service nfs restart

创建共享目录并赋予写入权限

代码语言:javascript复制
mkdir /opt/wwwroot1 /opt/wwwroot2
chmod 777 /opt/wwwroot1 /opt/wwwroot2

编辑配置文件

代码语言:javascript复制
vim /etc/exports
/opt/wwwroot1 192.168.10.0/24(rw,sync) 
/opt/wwwroot2 192.168.10.0/24(rw,sync) 

发布共享

代码语言:javascript复制
exportfs -rv

关闭防火墙

代码语言:javascript复制
service iptables stop
(2) 配置两个real server服务器

安装nfs客户端

代码语言:javascript复制
yum install nfs-utils -y 
systemctl start rpcbind.service  
systemctl start nfs.service

查看nfs挂载

代码语言:javascript复制
showmount -e 192.168.10.50

Real Server1挂载nfs

代码语言:javascript复制
#法一:直接挂载
mount.nfs 192.168.10.50:/opt/wwwroot1 /var/www/html

#法二:修改fatab文件挂载
vim /etc/fstab
  192.168.10.50:/opt/wwwroot1 /var/www/html nfs defaults,_netdev  0 0

Real Server2挂载nfs

代码语言:javascript复制
方法同Real Server1,将挂载目录/opt/wwwroot1改成/opt/wwwroot2,其余一样。

安装httpd

代码语言:javascript复制
yum install httpd -y

创建测试网页并启动httpd服务

代码语言:javascript复制
#real server1创建测试网页
echo "Server 192.168.10.51" > /var/www/html/index.html
#real server2创建测试网页
echo "Server 192.168.10.52" > /var/www/html/index.html
代码语言:javascript复制
#启动httpd服务
systemctl start httpd.service 
systemctl enable httpd.service 

关闭防火墙和安全性策略

代码语言:javascript复制
systemctl stop  firewalld.service 
systemctl disable firewalld.service
setenforce 0

测试网页打开是否正常

代码语言:javascript复制
firefox http://127.0.0.1/
(3) 配置Director server服务器

安装ipvsadm管理工具

代码语言:javascript复制
yum install ipvsadm -y

调用LVS内核模块

代码语言:javascript复制
modprobe ip_vs #加载LVS内核模块
cat /proc/net/ip_vs  #查看ip_vs版本信息

开启路由转发

代码语言:javascript复制
#法一:编辑sysctl.conf文件,永久路由转发
vim /etc/sysctl.conf
  net.ipv4.ip_forward=1
sysctl -p  #保存

#法二:直接编辑,临时路由转发
echo "1" > /proc/sys/net/ipv4/ip_forward

配置SNAT转发规则,设置nat防火墙

代码语言:javascript复制
iptables -F -t nat      #清空nat防火墙
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o ens37 -j SNAT --to-source 12.0.0.1

Director 上编辑 nat 实现负载分配脚本

代码语言:javascript复制
# 设置 ipvsadm
vim nat.sh
 #!/bin/bash
 ipvsadm-save  > /etc/sysconfig/ipvsadm   #保存策略
 service ipvsadm start 
 ipvsadm -C     #清除内核虚拟服务器表中的所有记录
 ipvsadm -A -t 12.0.0.1:80 -s rr  #创建虚拟服务器
 ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.51:80 -m 
 ipvsadm -a -t 12.0.0.1:80 -r 192.168.10.52:80 -m 
 ipvsadm

ipvsadm管理工具的选项用法:

  • -A: 表示添加虚拟服务器
  • -t: 用来指定VIP地址及TCP端口
  • -s: 用来指定负载均衡调度算法
  • -a: 表示添加真实服务器
  • -r: 用来指定RIP地址及TCP端口
  • -m: 表示使用NAT群集模式
  • -g: 表示使用DR群集模式
  • -i: 表示使用TUN群集模式
  • -w: 用来设置权重

保存nat脚本后直接运行

代码语言:javascript复制
chmod  x nat.sh
./nat.sh

查看ipvsadm设置的规则

代码语言:javascript复制
ipvsadm -ln
3.测试LVS群集

用Windows客户端直接访问http://12.0.0.1, 将能够看到由真实服务器提供的网页内容。

第一次访问:

Real Server连接次数查看:

刷新一次:

Real Server连接次数查看:

LVS的DR模式案例部署详细请看LVS负载均衡之LVS-DR搭建Web群集与LVS结合Keepalived搭建高可用Web群集

0 人点赞