NAT模式LVS负载均衡集群

负载调度器:内网 网关 ens33:192.168.1.200,外网 网关 ens36:12.0.0.10 Web节点服务器1:192.168.1.100 Web节点服务器2:192.168.1.101 NFS服务器:192.168.1.102 客户端:12.0.0.12

1.部署共享存储

(NFS服务器:192.168.1.102)

关闭防火墙

要用的机器都要关闭这些选项

 systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
vim /etc/selinux/config #永久关闭selinux

查看是否已有软件包

如果没有安装

[root@localhost ~]# rpm -q rpcbind nfs-utils
rpcbind-0.2.0-42.el7.x86_64
nfs-utils-1.3.0-0.48.el7.x86_64

安装nfs,rpcbind服务

yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service

创建共享文件

 mkdir /opt/gy /opt/ylc
chmod 777 gy/ ylc/
echo 'this is gy web!' > gy/index.html
echo 'this is ylc web!' > ylc/index.html
​

 vim  /etc/exports //配置共享策略
cat /etc/exports
/opt/gy 192.168.1.0/24(rw,sync)
#rw可读可写ro只读,sync同步(同时同步到内存和磁盘)async,先同步到内存在同步到磁盘
 #区别sync比async更安全如果突然宕机是有保存的,io消耗大
 #async比sync读取速度更快
 #root_squash不进行降权,降权的话为匿名用户
/opt/ylc 192.168.1.0/24(rw,sync)
--发布共享---
exportfs -rv

2.配置节点服务器

(192.168.80.100、192.168.80.101)

配置第一台真实服务器

192.168.1.100

[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld.service

yum install httpd -y #安装web服务
systemctl start httpd.serviceh
systemctl enable httpd.service
​

yum install nfs-utils rpcbind -y
showmount -e 192.168.1.102#查看nfs服务

systemctl start rpcbind
systemctl enable rpcbind

mount.nfs 192.168.1.102:/opt/gy /var/www/html #临时挂载
​
vim /etc/fstab #永久挂载
192.168.1.100/:/opt/gy /var/www/html nfs defaults,_netdev 0  0
mount -a #读取永久挂载配置文件,实现挂载

修改网网关指向

vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network

修改http配置文件

KeepAlive off#关闭长连接便于后面观察负载均衡,的跳转

测试是否成功

[root@localhost ~]# ls /var/www/html/
index.html
[root@localhost ~]# cat /var/www/html/index.html
this is gy web!
​

配置第二台真实服务器

--192.168.80.101---

[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# vim /etc/selinux/config //永久关闭selinux

[root@localhost ~]# showmount -e 192.168.1.102 //查看nfs服务
Export list for 192.168.1.102:
/opt/ylc 192.168.1.0/24
/opt/gy  192.168.1.0/24
​

安装web服务httpd或nginx

//这里我安装httpd
yum install httpd -y //安装httpd服务
systemctl enable --now httpd.service #开机自启并现在开启
mount.nfs 192.168.1.102:/opt/ylc /var/www/html
​
vim /etc/fstab #永久挂载
192.168.1.102:/opt/ylc /var/www/html nfs defaults,_netdev 0  0

修改网网关指向

vim /etc/sysconfig/network-scripts/ifcfg-ens33#修改网关指向
systemctl restart network //刷新网卡配置

修改http配置文件

KeepAlive off

测试

 cat /var/www/html/index.html

3.配置负载调度器

(内网关 ens33:192.168.1.200,外网关 ens36:12.0.0.10)

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

添加网卡

ifconfig #查看新添加网卡

修改新网卡配置

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens36
vim ifcfg-ens36 #修改ens36配置
vim ifcfg-ens33 #修改ens33配置
systemctl restart network #刷新网卡配置

测试

ping 12.0.0.10

(1)配置SNAT转发规则

vim /etc/sysctl.conf#添加路由
net.ipv4.ip_forward = 1
​
或 echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p //加载配置文件
​
​

iptables -t nat -F #清空nat表
iptables -F #清空filter表
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens36 -j SNAT --to 12.0.0.10
#-t指定nat -A表指定POSTROUTING链 -s指定源地址 -o指定出口网卡 -j动作选项,它用于对数据包执行源地址转换,--to指定转换地址

iptables -t nat -nL查看是否配置成功

测试

开启一台新的机器当客户端

我这里用的是windows7,linux也行

修改网络适配器

浏览器访问

都能正常访问但是不能跳转

实现负载均衡,跳转

(2)加载LVS内核模块

modprobe ip_vs                  #加载 ip_vs模块
cat /proc/net/ip_vs #查看 ip_vs版本信息
​
//也可以
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
#用for循环加载所有ipvs模块

(3)安装ipvsadm 管理工具

yum -y install ipvsadm
​
--启动服务前须保存负载分配策略---
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadm
​
systemctl start ipvsadm.service

注意:如果安装不了搭建本地yum仓库安装

(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

ipvsadm -C                  #清除原有策略
ipvsadm -A -t 12.0.0.10:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.1.100:80 -m [-w 1]
ipvsadm -a -t 12.0.0.1:80 -r 192.168.1.101:80 -m [-w 1]
ipvsadm #启用策略
​
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /opt/ipvsadm #保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
​

测试

http://12.0.0.10

总结

ipvsadm 工具选项说明:
-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc lblc:基于本地的最少连接)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点
-t:指定 VIP地址及 TCP端口
-r:指定 RIP地址及 TCP端口
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:设置权重(权重为 0 时表示暂停节点)
-p 60:表示保持长连接60秒(默认关闭连接保持)
-l:列表查看 LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln
​
​
---------------------NAT模式 LVS负载均衡群集部署-------------------------
负载调度器:内网关 ens33:192.168.1.200,外网关 ens36:12.0.0.10
Web节点服务器1:192.168.1.100
Web节点服务器2:192.168.1.101
NFS服务器:192.168.1.102
客户端:12.0.0.12
​
1.部署共享存储(NFS服务器:192.168.1.102)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
​
yum install nfs-utils rpcbind -y
systemctl start rpcbind.service
systemctl start nfs.service
​
systemctl enable nfs.service
systemctl enable rpcbind.service
​
mkdir /opt/gy /opt/ylc
chmod 777 /opt/gy /opt/ylc
echo 'this is gy web!' > /opt/gy/index.html
echo 'this is ylc web!' > /opt/ylc/index.html
​
vim /etc/exports
/opt/gy 192.168.1.0/24(rw,sync)
/opt/ylc 192.168.1.0/24(rw,sync)
​
--发布共享---
exportfs -rv
​
​
2.配置节点服务器(192.168.1.100、192.168.1.101)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
​
yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service
​
yum install nfs-utils rpcbind -y
showmount -e 192.168.1.102
​
systemctl start rpcbind
systemctl enable rpcbind
​
--192.168.80.100---
mount.nfs 192.168.1.102:/opt/gy /var/www/html
​
vim /etc/fstab
192.168.80.13:/opt/ylc /var/www/html nfs defaults,_netdev 0  0
​
--192.168.80.101---
mount.nfs 192.168.1.102:/opt/ylc /var/www/html
echo 'this is ylc web!' > /var/www/html/index.html
​
vim /etc/fstab
192.168.80.13:/opt/ylc /var/www/html nfs defaults,_netdev 0  0
​
​
3.配置负载调度器(内网关 ens33:192.168.1.200,外网关 ens36:12.0.0.10)
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
​
​
准备 :添加双网卡并配置好地址
​
(1)配置SNAT转发规则
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
​
或 echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p
​
iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ens36 -j SNAT --to 12.0.0.10
​
(2)加载LVS内核模块
modprobe ip_vs #加载 ip_vs模块
cat /proc/net/ip_vs #查看 ip_vs版本信息
​
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
​
(3)安装ipvsadm 管理工具
yum -y install ipvsadm
​
--启动服务前须保存负载分配策略---
ipvsadm-save > /etc/sysconfig/ipvsadm
或者 ipvsadm --save > /etc/sysconfig/ipvsadm
​
systemctl start ipvsadm.service
​
(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -C #清除原有策略
ipvsadm -A -t 12.0.0.10:80 -s rr [-p 60]
ipvsadm -a -t 12.0.0.10:80 -r 192.168.1.100:80 -m [-w 1]
ipvsadm -a -t 12.0.0.10:80 -r 192.168.1.101:80 -m [-w 1]
ipvsadm #启用策略
​
ipvsadm -ln #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /opt/ipvsadm #保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm
----------------------------------------------------------------------------------------------------------
ipvsadm -d -t 12.0.0.10:80 -r 192.168.1.100:80 #删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.1:80 #删除整个虚拟服务器
systemctl stop ipvsadm #停止服务(清空策略),如果selinux没关闭/etc/sysconfig/ipvsadm内容也会清空
systemctl start ipvsadm #启动服务(根据/etc/sysconfig/ipvsadm恢复策略)
ipvsadm-restore < /opt/ipvsadm            #恢复LVS 策略
----------------------------------------------------------------------------------------------------------
​
4.测试效果
在一台IP为12.0.0.12的客户机使用浏览器访问 http://12.0.0.10/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)。

NAT模式LVS负载均衡集群的更多相关文章

  1. LVS负载均衡集群--NAT模式部署

    目录: 一.企业群集应用概述 二.负载均衡群集架构 三.负载均衡群集工作模式分析 四.关于LVS虚拟服务器 五.NAT模式 LVS负载均衡群集部署 一.企业群集应用概述 1.群集的含义 Cluster ...

  2. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  3. 项目实战2—实现基于LVS负载均衡集群的电商网站架构

    负载均衡集群企业级应用实战-LVS 实现基于LVS负载均衡集群的电商网站架构 背景:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响 ...

  4. LVS之2---基于LVS负载均衡集群架构

    LVS之2---基于LVS负载均衡集群架构实现 目录 LVS之2---基于LVS负载均衡集群架构实现 ipvsadm software package Options 常用命令 保存及重载规则 内存映 ...

  5. NAT模式 LVS负载均衡群集部署

    NAT模式 LVS负载均衡群集部署的操作步骤 实验环境准备: 负载调度器:内网关 ens33:172.16.10.1,外网关 ens37:12.0.0.1 Web节点服务器1:172.16.10.10 ...

  6. LVS负载均衡集群--DR模式部署

    目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...

  7. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

  8. 实现基于LVS负载均衡集群的电商网站架构

    背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...

  9. LVS负载均衡集群

    回顾-Nginx反向代理型负载 负载均衡(load balance)集群,提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...

  10. Linux 笔记 - 第十八章 Linux 集群之(二)LVS 负载均衡集群

    一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.上一篇已经讲解了 HA 高可用集群,此节讲解负载均衡集群. 负载均衡集群(Load Balance Cluseter,简称 ...

随机推荐

  1. RESTful API 简介

    RESTful API 简介 想必使用过 PHP.JSP 这一类服务器动态页面技术的程序员应该都还记得,在使用这种传统的动态页面架构构建应用程序的时候,用于描述用户界面的 HTML 页面通常都是在服务 ...

  2. 5.5. Java并发工具类(如CountDownLatch、CyclicBarrier等)

    5.5.1 CountDownLatch CountDownLatch是一个同步辅助类,它允许一个或多个线程等待,直到其他线程完成一组操作.CountDownLatch有一个计数器,当计数器减为0时, ...

  3. windows10环境下安装RabbitMQ以及延时插件(图文)

    安装转载:https://www.cnblogs.com/saryli/p/9729591.html 插件转载:https://blog.csdn.net/nbdclw/article/details ...

  4. Python的Lambda函数: 一把极简编程的瑞士军刀

    Python中的lambda函数,或者叫匿名函数,是一个极其强大的工具.它以简洁.优雅的语法提供了创建函数的快速方式.在本篇文章中,我们将全方位地深入研究lambda函数的用法和特点,通过理论和实例相 ...

  5. 洛谷 P9047 [PA2021] Poborcy podatkowi

    题意 给一棵有边权的树,从中选出若干条长度为 4 的路径,要求边不交,求最大权值和. 数据范围:\(1\le n\le 2\times 10^5, -10^9\le w\le 10^9\). 题解 考 ...

  6. JetBrain学信网注册(Clion)

    一.打开网站 首先打开JetBrains关于学生认证的网站:https://www.jetbrains.com/shop/eform/students,可以看见以下页面: 二.人工验证 人工验证适合于 ...

  7. PostgreSQL JDBC 开发指导

    JDBC 驱动程序 目录 设置 JDBC 驱动程序 初始化驱动程序 使用 SSL 发出查询和处理结果 调用存储函数和过程 存储二进制数据 JDBC 转义 PostgreSQL 扩展的 JDBC API ...

  8. 对敏感操作的二次认证 —— 详解 Sa-Token 二级认证

    一.需求分析 在某些敏感操作下,我们需要对已登录的会话进行二次验证. 比如代码托管平台的仓库删除操作,尽管我们已经登录了账号,当我们点击 [删除] 按钮时,还是需要再次输入一遍密码,这么做主要为了两点 ...

  9. GetX 关于报错 Null check operator used on a null value的解决

    import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'logic.dart'; class Ge ...

  10. 我开源了团队内部基于SpringBoot Web快速开发的API脚手架v1.6.0更新

    什么是 rest-api-spring-boot-starter rest-api-spring-boot-starter 适用于SpringBoot Web API 快速构建让开发人员快速构建统一规 ...