负载调度器:内网 网关 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
(NFS服务器:192.168.1.102)
关闭防火墙
要用的机器都要关闭这些选项
systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 vim /etc/selinux/config #永久关闭selinux
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_64nfs-utils-1.3.0-0.48.el7.x86_64
[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 -ysystemctl start rpcbind.servicesystemctl start nfs.servicesystemctl enable nfs.servicesystemctl enable rpcbind.service
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?
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
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
(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
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl disable firewalld.service
yum install httpd -y #安装web服务systemctl start httpd.servicehsystemctl enable httpd.service?
yum install httpd -y #安装web服务
systemctl start httpd.serviceh
systemctl enable httpd.service
yum install nfs-utils rpcbind -yshowmount -e 192.168.1.102#查看nfs服务
showmount -e 192.168.1.102#查看nfs服务
systemctl start rpcbindsystemctl enable rpcbind
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 0mount -a #读取永久挂载配置文件,实现挂载
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-ens33systemctl restart network
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!?
[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 ~]# 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?
[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
//这里我安装httpdyum install httpd -y //安装httpd服务systemctl enable --now httpd.service #开机自启并现在开启
//这里我安装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
mount.nfs 192.168.1.102:/opt/ylc /var/www/html
192.168.1.102:/opt/ylc /var/www/html nfs defaults,_netdev 0 0
vim /etc/sysconfig/network-scripts/ifcfg-ens33#修改网关指向systemctl restart network //刷新网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33#修改网关指向
systemctl restart network //刷新网卡配置
KeepAlive off
测试
cat /var/www/html/index.html
(内网关 ens33:192.168.1.200,外网关 ens36:12.0.0.10)
systemctl stop firewalld.servicesystemctl disable firewalld.servicesetenforce 0
添加网卡
ifconfig #查看新添加网卡
修改新网卡配置
cd /etc/sysconfig/network-scripts/ cp ifcfg-ens33 ifcfg-ens36 vim ifcfg-ens36 #修改ens36配置vim ifcfg-ens33 #修改ens33配置 systemctl restart network #刷新网卡配置
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_forwardsysctl -p //加载配置文件??
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 -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模块
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 -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 rripvsadm -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?
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 #保存策略
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.10Web节点服务器1:192.168.1.100Web节点服务器2:192.168.1.101NFS服务器:192.168.1.102客户端:12.0.0.12?1.部署共享存储(NFS服务器:192.168.1.102)systemctl stop firewalld.servicesystemctl disable firewalld.servicesetenforce 0?yum install nfs-utils rpcbind -ysystemctl start rpcbind.servicesystemctl start nfs.service?systemctl enable nfs.servicesystemctl enable rpcbind.service?mkdir /opt/gy /opt/ylcchmod 777 /opt/gy /opt/ylcecho 'this is gy web!' > /opt/gy/index.htmlecho '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.servicesystemctl disable firewalld.servicesetenforce 0?yum install httpd -ysystemctl start httpd.servicesystemctl enable httpd.service?yum install nfs-utils rpcbind -yshowmount -e 192.168.1.102?systemctl start rpcbindsystemctl enable rpcbind?--192.168.80.100---mount.nfs 192.168.1.102:/opt/gy /var/www/html?vim /etc/fstab192.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/htmlecho 'this is ylc web!' > /var/www/html/index.html?vim /etc/fstab192.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.servicesystemctl disable firewalld.servicesetenforce 0??准备 :添加双网卡并配置好地址?(1)配置SNAT转发规则vim /etc/sysctl.confnet.ipv4.ip_forward = 1?或 echo '1' > /proc/sys/net/ipv4/ip_forwardsysctl -p?iptables -t nat -Fiptables -Fiptables -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服务的连接保持)。
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)
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
2.配置节点服务器(192.168.1.100、192.168.1.101)
yum install httpd -y
systemctl start httpd.service
showmount -e 192.168.1.102
--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
echo 'this is ylc web!' > /var/www/html/index.html
3.配置负载调度器(内网关 ens33:192.168.1.200,外网关 ens36:12.0.0.10)
准备 :添加双网卡并配置好地址
vim /etc/sysctl.conf
sysctl -p
iptables -t nat -F
iptables -F
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 -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服务的连接保持)。
原文链接:https://www.cnblogs.com/sl08/p/17691432.html
本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728