LVS集群和nginx负载均衡

目录

[1、基于 CentOS 7 构建 LVS-DR 群集。](#1、基于 CentOS 7 构建 LVS-DR 群集。)

2、配置nginx负载均衡。


1、基于 CentOS 7 构建 LVS-DR 群集。

复制代码
1.部署LVS负载调度器
1>安装配置工具
[root@node6 ~]# yum install -y ipvsadm
2>配置LVS虚拟IP(VIP地址)
[root@node6 ~]# ifconfig ens33:200 192.168.111.200 netmask 255.255.255.255 up
3>手工执行配置添加LVS服务并增加两台RS
[root@node6 ~]# ipvsadm -A -t 192.168.111.200:80 -s rr
[root@node6 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.7:80 -g
[root@node6 ~]# ipvsadm -a -t 192.168.111.200:80 -r 192.168.111.8:80 -g
[root@node6 ~]# 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.111.200:80 rr
  -> 192.168.111.7:80             Route   1      0          0         
  -> 192.168.111.8:80             Route   1      0          0  

2.部署web服务器(两台机器同时部署)
1>安装web服务器
[root@node7 ~]# yum install -y httpd
2>写网页文件
[root@node7 ~]# echo "web is `hostname -I`" > /var/www/html/index.html
[root@node7 ~]# systemctl start httpd
3>在客户端就行测试
[root@yx ~]# curl 192.168.111.7
web is 192.168.111.7 
[root@yx ~]# curl 192.168.111.8
web is 192.168.111.8
4>手工在RS端绑定VIP,并且添加本机访问VIP的路由
[root@node7 ~]# ifconfig lo:200 192.168.111.200 netmask 255.255.255.255 up
[root@node7 ~]# route add -host 192.168.111.200 dev lo:200
[root@node7 ~]# route -n		# 查看路由
5>手工在RS端抑制ARP响应(调整内核参数,关闭arp响应)
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/ens33/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

另一种方法:使用arptables实现抑制arp
[root@node8 ~]# yum install -y arptables
[root@node8 ~]# arptables -A INPUT -d 192.168.111.200 -j DROP
[root@node8 ~]# arptables -A OUTPUT -s 192.168.111.200 -j mangle --mangle-ip-s 192.168.111.8
[root@node8 ~]# arptables -L -n --line-number	# 查看
# --line-number 显示行号
[root@node8 ~]# arptables-save > /etc/sysconfig/arptables 
[root@node8 ~]# systemctl enable --now arptables.service

3.测试(在客户端进行测试)
[root@yx ~]# for ((i=1;i<=6;i++))
> do
> curl 192.168.111.200
> done
web is 192.168.111.8 
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 

2、配置nginx负载均衡。

复制代码
1.准备两台后端web服务器(同时进行)
# 把nginx的rpm包上传至服务器中,然后进行安装
[root@node7 ~]# yum install -y nginx
[root@node7 ~]# echo "web is `hostname -I`" > /usr/share/nginx/html/index.html
[root@node7 ~]# systemctl start nginx

2.负载均衡配置
[root@node6 ~]# yum install -y nginx-1.22.0-1.el7.ngx.x86_64.rpm 
[root@node6 ~]# vim /etc/nginx/conf.d/vhost.conf
server {
    listen       80;
    server_name  www.open.cn;
    location / {
        proxy_pass http://web_server;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
upstream web_server {
    server 192.168.111.7;
    server 192.168.111.8;
}
[root@node6 ~]# nginx -t
[root@node6 ~]# systemctl start nginx

3.测试
[root@yx ~]# vim /etc/hosts
192.168.111.6 www.open.cn
[root@yx ~]# for ((i=1;i<=6;i++)); do curl www.open.cn; done
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 
web is 192.168.111.7 
web is 192.168.111.8 
web is 192.168.111.7 

**或者在PC端修改主机域名(C:\Windows\System32\drivers\etc/hosts)
192.168.111.6 www.open.cn

在浏览器上进行域名访问,访问的内容刷新之后会进行不断的变化,如下**

相关推荐
QYR-分析5 小时前
蓝海赛道高速扩容!全球小型观察ROV市场格局、细分场景与发展趋势分析
大数据·运维·云计算
陈皮糖..5 小时前
从零搭建一个简易 AI 运维问答机器人(RAG + LangChain + Streamlit)
运维·人工智能·ai·langchain·机器人
风哥2号6 小时前
数据库教程FGMT03‑生产环境Linux+Oracle19c+ASM安装配置与项目实战
linux·数据库
一木 之林6 小时前
七、一-AI 工程实践、插件化调试与软件交付
java·linux·c++
制造业的搬运工6 小时前
AI服务器背板与传统背板差异:三大设计升级解析
运维·服务器·人工智能·科技·制造·pcb工艺
zhengqweasd6 小时前
Linux网络(一):服务器数据包从网卡到应用程序,完整收包流程详解
linux·服务器·网络
顶点多余6 小时前
仿muduo库实现高并发服务器项目
运维·服务器
小白羊丨6 小时前
HTTP/2 如何缓解 HTTP/1.1 阻塞;长连接对 Nginx 有什么影响?
网络协议·nginx·http
脚踏实地,坚持不懈!6 小时前
Linux 6.18.7 内存分配与回收 —— 代码梳理
linux·运维·网络
byte轻骑兵6 小时前
【BlueZ 】hci 模块:用户态 HCI 层的核心封装与消息处理
linux·人工智能·bluez·电脑蓝牙·嵌入式蓝牙