基于 openEuler 构建 LVS-NAT 群集

1、环境准备

准备好下面四台台服务器:

|-------------|-------------------------------------------|--------------|
| 主机名 | IP | 角色 |
| openEuler-1 | 192.168.121.11(公网)、192.168.121.131.11(内网) | LVS |
| openEuler-2 | 192.168.131.12 | Real Server1 |
| openEuler-3 | 192.168.131.13 | Real Server2 |
| Rocky8 | 192.168.121.51 | Client |

2、Web服务器配置

在两台RS上安装并配置nginx服务:

复制代码
[root@openEuler-2 ~]# echo "web test page!(ip:`hostname -I`)" > /usr/share/nginx/html/index.html

[root@openEuler-2 ~]# systemctl restart nginx

[root@openEuler-2 ~]# curl localhost
this is test page!(ip:192.168.131.12 )

# 第二台RS配置同上

注意:RS的网关是lvs的DIP(内网地址)。

3、LVS开启路由转发

在lvs上:

复制代码
临时开启:
1、echo1>/proc/sys/net/ipv4/ip_forward
2、sysctl -w net.ipv4.ip_forward=1
永久开启:
修改文件 /etc/sysctl.conf
net.ipv4.ip forward=1
使生效:sysctl -p

4、LVS配置

在lvs上:

复制代码
[root@openEuler-1 ~]# ipvsadm -At 192.168.121.11:80 -s rr
[root@openEuler-1 ~]# ipvsadm -at 192.168.121.11:80 -r 192.168.131.12:80 -m
[root@openEuler-1 ~]# ipvsadm -at 192.168.121.11:80 -r 192.168.131.13:80 -m
[root@openEuler-1 ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.121.11:80 rr
  -> 192.168.131.12:80            Masq    1      0          0
  -> 192.168.131.13:80            Masq    1      0          0

6、测试

在Client上:

复制代码
[root@localhost ~]# for ((i=1;i<10;i++))
> do
> curl 192.168.121.11
> done
web test page!(ip:192.168.131.13 )
web test page!(ip:192.168.131.12 )
web test page!(ip:192.168.131.13 )
web test page!(ip:192.168.131.12 )
web test page!(ip:192.168.131.13 )
web test page!(ip:192.168.131.12 )
web test page!(ip:192.168.131.13 )
web test page!(ip:192.168.131.12 )
web test page!(ip:192.168.131.13 )
相关推荐
chen_note17 分钟前
LVS集群
nginx·lvs·haproxy·ipvsadm·lvs四种模式
Yyyy48218 分钟前
LVS三种模式及原理
服务器·php·lvs
Yyyy48219 分钟前
LVS、Nginx、HAProxy 的区别
运维·nginx·lvs
_dindong24 分钟前
Linux系统编程:线程概念
linux·运维·笔记·学习
雪饼android之路2 小时前
【Android】 android suspend/resume总结(3)
android·linux
老黄编程2 小时前
ubuntu如何查看一个内核模块被什么模块依赖(内核模块信息常用命令)?
linux·运维·ubuntu
知北游天2 小时前
Linux网络:使用UDP实现网络通信(服务端&&客户端)
linux·网络·udp
半桔2 小时前
【网络编程】TCP 粘包处理:手动序列化反序列化与报头封装的完整方案
linux·网络·c++·网络协议·tcp/ip
<但凡.3 小时前
Linux 修炼:进程控制(一)
linux·运维·服务器·bash
✎﹏赤子·墨筱晗♪4 小时前
Ansible Playbook 入门指南:从基础到实战
linux·服务器·ansible