LVS-DR集群及NGINX负载均衡

LVS-DR集群

原理:

  1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间

  2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链

  3. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群

服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP

地址及端口,并将新的数据包发往POSTROUTING链

  1. POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将

数据包最终发送给后端的服务器

组成:

LVS架设的服务器集群系统有三个部分组成:最前端的负载均衡层,用Load Balancer表示,中间的服务器群组层,用Server Array表示,最底端的数据共享存储层,用Shared Storage表示。

搭建

192.168.190.200 作为调度器director

192.168.190.201 为web服务器1

192.168.190.202 为web服务器2

1、安装ipvsadm工具

bash 复制代码
yum install ipvsadm -y

2、配置虚拟ip

bash 复制代码
ifconfig ens33:200 192.168.190.150 netmask 255.255.255.0 up

3、手动添加两台RS

bash 复制代码
ipvsadm -C
ipvsadm --set 30 5 60
ipvsadm -A -t 192.168.190.200:80 -s rr -p 20
ipvsadm -a -t 192.168.190.200:80 -r 192.168.190.201:80 -g 
ipvsadm -a -t 192.168.190.200:80 -r 192.168.190.202:80 -g 

ipvsadm-save > /etc/sysconfig/ipvsadm

查看配置信息
[root@node1 ~]# ipvsadm -L
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http wrr persistent 20
  -> 192.168.190.201:http         Route   1      0          0         
  -> 192.168.190.202:http         Route   1      0          0 

4、给两台RS修改配置文件

bash 复制代码
RS1上执行
ifconfig lo:200 192.168.190.200 netmask 255.255.255.255 up
route add -host 192.168.190.200 dev lo
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/all/arp_ignore 
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
RS2上执行
ifconfig lo:200 192.168.190.200 netmask 255.255.255.255 up
route add -host 192.168.190.200 dev lo
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/all/arp_ignore 
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

NGINX负载均衡

1、准备1台服务主机,两台web服务器

服务主机

192.168.121.135

web服务器

192.168.121.140

192.168.121.150

在服务主机上修改配置文件

bash 复制代码
vim /etc/nginx/nginx.conf
upstream pool1 {
# 负载均衡池,里面记录的是要转发到的服务器
                server 192.168.121.140:80 weight=1;     # 主机及权重值
                server 192.168.121.150:80 weight=1;
        }
        server {
                listen 80;   # 监听端口
                server_name www.web.com;
                location / {
                        proxy_pass http://pool1;  # 当访问到www.web.com 时将会转发到 负载均衡池
                }
        }

在两台web服务器上,添加一下内容:

bash 复制代码
在192.168.121.140上
vim /etc/nginx/nginx.conf
在http 区块里面新增以下内容:

server {
    listen       80;
    server_name  192.168.121.140;
    location / {
            root    /usr/share/nginx/html1;    # 访问的目录
            index   index.html;   # 需要寻找的类型
    }
    
然后创建目录写入数据
mkdir /usr/share/nginx/html1
echo web1 > /usr/share/nginx/html1/index.html

在192.168.121.150上
vim /etc/nginx/nginx.conf
在http 区块里面新增以下内容:

server {
    listen       80;
    server_name  192.168.121.150;
    location / {
            root    /usr/share/nginx/html1;    # 访问的目录
            index   index.html;   # 需要寻找的类型
    }
    
然后创建目录写入数据
mkdir /usr/share/nginx/html1
echo web2 > /usr/share/nginx/html1/index.html

在服务主机上添加域名解析文件

bash 复制代码
echo "192.1668.121.135 www.web.com" >> /etc/hosts

测试:

bash 复制代码
[root@node1 ~]# for((i=0;i<6;i++)); do curl www.web.com; done
web1
web2
web1
web2
web1
web2
相关推荐
gs8014018 小时前
避坑指南:Nginx 多层代理下的“404”与“重定向死循环”深度排查
运维·nginx
相思难忘成疾19 小时前
RHCE 综合实验:基于 Nginx 实现 openlab 多站点部署、用户访问控制与 HTTPS 加密访问
linux·运维·nginx·http·https·rhel
Q_45828386819 小时前
基于 JTT1078MediaServer 的集群方案实践(Nginx + 溯源模式)轻量级车联网音视频集群
运维·服务器·nginx·架构·音视频·交通物流
程序员老邢1 天前
【技术底稿 32】Nginx 经典大坑复盘:本机公网域名自环代理,导致接口返回首页 / 404 实战排障
java·运维·nginx·前后端分离·技术底稿·后端部署
念何架构之路2 天前
负载均衡详解
运维·php·负载均衡
TDengine (老段)2 天前
TDengine 集群拓扑深度解析 — 节点发现、EP 机制与负载均衡
大数据·数据库·人工智能·重构·负载均衡·时序数据库·tdengine
相思难忘成疾2 天前
Nginx 子目录多站点配置实验(HTTP/HTTPS 分离部署)
linux·运维·nginx·http·https·vim
閞杺哋笨小孩2 天前
面向「机构按域名访问、同一套前端」的 Nginx 示例
nginx
源远流长jerry3 天前
Linux 本机网络通信机制深度解析:Loopback 设备原理
linux·运维·服务器·网络·tcp/ip·nginx·负载均衡
spmcor3 天前
一文搞定 Nginx 开机自启:Windows / Linux / macOS 全平台指南
nginx