LVS负载均衡——NAT部署实战

LVS-NAT部署实战

一、环境

LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,使用轮询(rr)调度算法

实际生产环境中,两台服务器的服务及内容应是一致的,现在为了区别轮询访问的验证,设置不同的首页

在这里插入图片描述
这里的负载均衡调度器同时作为网关及防火墙,所以,内网中的所有服务器节点均关闭防火墙

LVS 内:192.168.100.1 外:12.0.0.1
Web1 192.168.100.111
Web2 192.168.100.112
NFS 192.168.100.200
win10 12.0.0.12

二、部署

1、配置NFS共享存储服务

#首先作为共享服务器,先添加两块硬盘并进行分区、格式化、挂载(两块磁盘配置相同)
在这里插入图片描述
在这里插入图片描述

#在/opt目录下创建两个目录作为挂载点并进行挂载

[root@nfs ~]# mkdir /opt/kgc /opt/accp
[root@nfs ~]# vim /etc/fstab

在这里插入图片描述
在这里插入图片描述
#存储服务器需要安装rpcbind 和 nfs-utils 这两个包,没有的话用 yum安装即可

在这里插入图片描述

#更改配置文件(把存储空间提供出去)

[root@nfs ~]# vim /etc/exports
/opt/kgc        192.168.100.0/24(rw,sync,no_root_squash)
/opt/accp       192.168.100.0/24(rw,sync,no_root_squash)

#开启服务并查看

[root@localhost network-scripts]# systemctl start nfs
[root@localhost network-scripts]# systemctl start rpcbind
[root@localhost network-scripts]# showmount -e
Export list for nfs:
/opt/accp 192.168.100.0/24
/opt/kgc  192.168.100.0/24

2、配置Web服务器

#首先两台服务器分别安装apache并关闭防火墙

[root@web1 ~]# yum install -y httpd
[root@web1 ~]# systemctl stop firewalld.service 
[root@web1 ~]# setenforce 0
[root@web2 ~]# yum install -y httpd
[root@web2 ~]# systemctl stop firewalld.service 
[root@web2 ~]# setenforce 0

#搜索站点,能搜到nfs提供的站点

[root@web1 ~]# showmount -e 192.168.100.200
Export list for 192.168.100.200:
/opt/accp 192.168.100.0/24
/opt/kgc  192.168.100.0/24

#添加自动挂载(两个web服务器配置相同,kgc改为accp)

在这里插入图片描述
#重新加载/etc/fstab(两台服务器操作一致)
在这里插入图片描述

#现在开始添加首页文件

[root@web1 ~]# cd /var/www/html
[root@web1 html]# vim index.html
<h1>hello!kgc</h1>

[root@web1 html]# systemctl start httpd
[root@web2 ~]# cd /var/www/html
[root@web2 html]# vim index.html
<h1>hello!accp</h1>

[root@web2 html]# systemctl start httpd

现在两台web服务配置完成,网站站点使用的是共享存储服务器的存储空间

3、配置 LVS

#安装 ipvsadm 服务

[root@lvs ~]# yum install -y ipvsadm

#开启路由转发功能

[root@lvs ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@lvs ~]# sysctl -p   		//加载

#设置防火墙规则(地址映射)

[root@lvs ~]# iptables -F			//清除转发表
[root@lvs ~]# iptables -t nat -F			//清除nat地址转换表
[root@lvs ~]# iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1

设置规则, -t指定nat地址转换表 -A在末尾插入postrouting链 -o对外出口为36 -s指定源地址192.168.100.0/24 -j做一个SNAT转换 --to-source 转换成12.0.0.1

#加载LVS内核模块

[root@lvs ~]# modprobe ip_vs
[root@lvs ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn

#开启ipvsadm(先保存,再开启服务)

[root@lvs ~]# ipvsadm --save > /etc/sysconfig/ipvsadm
[root@lvs ~]# systemctl start ipvsadm.service 

#定义脚本,配置负载分配策略

[root@lvs opt]# vim nat.sh
#!/bin/bash
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.111:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.112:80 -m
ipvsadm 

#脚本添加执行权限并执行脚本

[root@lvs opt]# chmod +x nat.sh 
[root@lvs opt]# ./nat.sh 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  lvs:http rr
  -> 192.168.100.111:http         Masq    1      0          0         
  -> 192.168.100.112:http         Masq    1      0          0   

三、验证

#win10作为外网客户端,先将ip、子网掩码、网关、DNS等改一下
在这里插入图片描述
#然后进入网页进行访问验证,多刷新几次(记得清除缓存)
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
因为做了NAT模式和存储共享,所以是可以直接访问到两台web服务器上的网页的,这就说明群集起作用了

发布了72 篇原创文章 · 获赞 44 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ML908/article/details/103991155
今日推荐