实验准备四台虚拟机
192.168.255.128 做负载均衡器(两张网卡,且都需要NAT模式)
192.168.255.130 Nginx节点服务器1
192.168.255.131 Nginx节点服务器2
192.168.255.132 nfs共享服务器
现将四台虚拟机的防火墙关闭
一、nfs服务器配置
1、准备共享目录
这里准备两个,便于区分不同的服务器节点
2、 安装nfs-utils和rpcbind
先rpcbind再nfs-utils
启动两个服务
赋权,不然无法对共享目录做读写操作
配置/etc/exports文件并发布共享
二、配置节点服务器
1、两台都安装Nginx
3、挂载共享目录到Nginx网页根目(临时挂载或者永久挂载/etc/fstab)
4、两台网关设置为调度器ip
三、负载均衡器配置
1、开启ip转发功能
2、配置两张NAT网卡
这两张网卡不需要网关和dns解析
3、做一个SNAT
iptables
iptables -vnL --line-number 查看规则表
管理选项 用法示例
-A 在指定链末尾追加一条 iptables -A INPUT (操作)
-I 在指定链中插入一条新的,未指定序号默认作为第一条 iptables -I INPUT (操作)
-P 指定默认规则 iptables -P OUTPUT ACCEPT (操作)
-D 删除 iptables -t nat -D INPUT 2 (操作)
-R 修改、替换某一条规则 iptables -t nat -R INPUT (操作)
-L 查看 iptables -t nat -L (查看)
-n 所有字段以数字形式显示(比如任意ip地址是0.0.0.0而不是anywhere,比如显示协议端口号而不是服务名) iptables -L -n,iptables -nL,iptables -vnL (查看) |
-v 查看时显示更详细信息,常跟-L一起使用 (查看)
--line-numbers 规则带编号 iptables -t nat -L -n --line-number iptables -t nat -L --line-number
-F 清除链中所有规则 iptables -F (操作)
-X 清空自定义链的规则,不影响其他链 iptables -X
-Z 清空链的计数器(匹配到的数据包的大小和总和)iptables -Z
-S 看链的所有规则或者某个链的规则/某个具体规则后面跟编号
匹配的条件 作用
-p 指定要匹配的数据包的协议类型
-s 指定要匹配的数据包的源IP地址
-d 指定要匹配的数据包的目的IP地址
-i 指定数据包进入本机的网络接口
-o 指定数据包离开本机做使用的网络接口
--sport 指定源端口号
--dport 指定目的端口号
4、加载ip_vs模块
5、 yum安装ipvsadm
ipvsadm 工具选项说明:
-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-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
安装后不能直接启动
6、保存ipvsadm规则
四、验证实验
找一台虚拟机 ip为12.0.0.12
已经实现了负载均衡,调度算法为rr