当前位置: 首页 > news >正文

基于 CentOS 7 构建 LVS-DR 群集 配置nginx负载均衡

环境配置:

RHCE客户机192.168.100.146
node1lvs192.168.100.145
node2RS192.168.100.147
node3RS192.168.100.148

 配置ipvsadm  httpd:

[root@node1 ~]# yum install ipvsadm.x86_64

[root@node2 ~]# yum install http -y        

[root@node2 ~]# systemctl start httpd

[root@node3 ~]# yum install http -y

[root@node3 ~]# systemctl start httpd

配置LVS虚拟IP(VIP)

[root@node1 ~]# ifconfig ens33:200 192.168.100.200 netmask 255.255.255.0 up

将内容写入/var/www/html 测试httpd

[root@node3 ~]# echo "web test page,ip is `hostname -I`" > /var/www/html/index.html
[root@node3 ~]# systemctl start httpd
[root@node3 ~]# curl 192.168.100.148
web test page,ip is 192.168.100.148 

[root@node2 ~]# echo "web test page,ip is `hostname -I`" > /var/www/html/index.html
[root@node2 ~]# systemctl start httpd
[root@node2 ~]# curl 192.168.100.147
web test page,ip is 192.168.100.147 

 手工在RS端绑定VIP

[root@node3 ~]# ifconfig lo:200 192.168.100.200 netmask 255.255.255.255 up

[root@node2 ~]# ifconfig lo:200 192.168.100.200 netmask 255.255.255.255 up

 添加RS访问VIP路由

[root@node2 ~]# route add -host 192.168.100.200 dev lo
[root@node3 ~]# route add -host 192.168.100.200 dev lo

 手工在RS端一直ARP响应

调整内核参数

[root@node3 all]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@node3 all]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@node3 conf]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node3 conf]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
 

[root@node3 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@node3 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
[root@node3 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@node3 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

arp_ignore- INTEGER

定义对目标地址为本地 IP ARP 询问不同的应答模式
0 - (默认值):回应任何网络接口上对任何本地 IP 地址的 arp 查询请求。
1 只回答目标 IP 地址是来访网络接口本地地址的 ARP 查询请求。
2 只回答目标 IP 地址是来访网络接口本地地址的 ARP 查询请求,且来访 IP 必须在该网络接口的子网段内。
3 不回应该网络界面的 arp 请求,而只对设置的唯一和连接地址做出回应。
4 -7 保留未使用。
8 不回应所有(本地地址)的 arp 查询。

 手工执行配置添加LVS服务并增加两台RS

[root@node1 ~]# ipvsadm -A -t 192.168.100.200:80 -s rr 
[root@node1 ~]# ipvsadm -a -t 192.168.100.200:80 -r 192.168.100.147:80  -g
[root@node1 ~]# ipvsadm -a -t 192.168.100.200:80 -r 192.168.100.148:80  -g

 ipvs查看配置状态

[root@node1 ~]# 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.100.200:80 rr
  -> 172.168.100.147:80           Route   1      0          0         
  -> 172.168.100.148:80           Route   1      0          0 

 客户机检测配置

[root@RHCE ~]# for ((i=1;i<=6;i++)); do curl 192.168.100.200; done
web test page,ip is 192.168.100.147
web test page,ip is 192.168.100.148
web test page,ip is 192.168.100.147
web test page,ip is 192.168.100.148
web test page,ip is 192.168.100.147
web test page,ip is 192.168.100.148

使用nginx配置负载均衡

RHCE192.168.100.146负载均衡服务器
node2192.168.100.148nginx服务器
node3192.168.100.149nginx服务器

 安装nginx可以使用如下仓库:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

 关闭防火墙 以及SELinux宽容模式

systemctl  stop   firewalld setenforce   0

启动服务并向主机 node2 node3 写入内容       

systenctl start nginx    启动nginx服务echo "web test page ip is `hostname -I`" > /usr/share/nginx/html/index.html   #写入内容systenctl start nginx    再次启动nginx服务

 在RHCE负载均衡服务器上配置

 vim /etc/nginx/nginx.conf #在 http模块中写入如下内容server {listen  80;server_name test.ng.test;    定义域名  也可以用iplocation / {proxy_pass http://web_server;}}upstream web_server {server 192.168.100.148:80;     nginx服务器地址  server 192.168.100.149:80;}

 测试结果:

http://www.lryc.cn/news/121493.html

相关文章:

  • CSS练习
  • 基于深度学习的3D城市模型增强【Mask R-CNN】
  • LabVIEW对并行机器人结构进行建模仿真
  • 【算法题】1281. 整数的各位积和之差
  • (一)ES6 介绍
  • 窥孔优化(Peephole Optimization)
  • Docker安装ElasticSearch/ES 7.4.0
  • 无涯教程-Perl - readline函数
  • 类与对象(入门)
  • 刷题记录(2023-08-12)
  • GPT内功心法:搜索思维到GPT思维的转换
  • 在WebStorm中通过live-server插件搭建Ajax运行环境
  • 侯捷 C++ part2 兼谈对象模型笔记——1 转换
  • 尚硅谷大数据项目《在线教育之采集系统》笔记003
  • PAT(Advanced Level)刷题指南 —— 第七弹
  • 合宙Air724UG LuatOS-Air script lib API--sys
  • MySQL建表和增添改查
  • @Transactional 注解下,事务失效的七种场景
  • chrome V3 插件开发 基础
  • 【uniapp】uniapp自动导入自定义组件和设置分包:
  • 【深度学习MOT videos detect】Detect to Track and Track to Detect
  • 关于Neo4j的使用及其基本命令
  • 【笔记】树状数组
  • vue全局组件自动注册直接使用,无需单独先引用注册再使用
  • 【HarmonyOS】@ohos.request 上传下载的那些事儿
  • github版面混乱加载不出的解决办法
  • dotNet 之数据库sqlite
  • 走近ChatGPT与类似产品:原理解析与比较
  • HarmonyOS SDK开放能力,服务鸿蒙生态建设,打造优质应用体验
  • 数字经济对产业结构升级和创业增长的影响(2011-2021年)