nginx四层tcp负载均衡及主备、四层udp负载均衡及主备、7层http负载均衡及主备配置(wndows系统主备、负载均衡)

准备工作

准备两台centos7电脑,虚拟机也可以

在windows上利用vmware17 搭建centos7 mini版本服务器-CSDN博客

设置好静态ip地址(因为windows 服务器上的网络负载平衡管理器不支持dhcp的服务器)

ky10、centos7等linux系统修改网卡ip地址,并设置网卡开机自启_kylin配置ip-CSDN博客

搭建keepalived

keepalived安装配置(服务器主备、负载均衡)-CSDN博客

主备拓扑

centos7系统nginx编译安装

支持四层负载均衡的nginx对版本有要求:需要1.19以上,我这边选择1.25.3进行测试

程序地址如下:

https://gitcode.net/zengliguang/nginx_offline_package.git

通过下面命令进行下载

复制代码
git clone https://gitcode.net/zengliguang/nginx_offline_package.git

需要先安装git

输入下面命令

复制代码
yum install -y git

等待安装完成

下载nginx_offline_package脚本,需要将脚本下载到/root根目录下,这样的话后面的安装脚本可以直接使用

编译安装脚本

复制代码
cd  /root/nginx_offline_package
source centos7_nginx_online_comp_install.sh

# 关闭防火墙
systemctl stop fire*
systemctl disable fire*

等待编译完成

确认是否运行成功

浏览器输入服务器ip

出现下图说明部署成功

centos7_nginx_online_comp_install.sh脚本安装之后的配置文件路径:/usr/local/nginx/conf/nginx.conf

centos7系统离线安装

支持四层负载均衡的nginx对版本有要求:需要1.19以上,我这边选择1.20.0进行测试

离线安装包下载,可以选择最新的版本 1.24.0

Index of /packages/rhel/7/x86_64/RPMS/

程序地址如下:

https://gitcode.net/zengliguang/nginx_offline_package.git

通过下面命令进行下载

复制代码
git clone https://gitcode.net/zengliguang/nginx_offline_package.git

下载nginx_offline_package脚本,需要将脚本下载到/root根目录下,这样的话后面的安装脚本可以直接使用

离线安装脚本

复制代码
# todo
cd  /root/nginx_offline_package
source centos7_nginx_offline_install.sh

# 关闭防火墙
systemctl stop fire*
systemctl disable fire*

centos7_nginx_offline_install.sh脚本安装之后的配置文件路径: /etc/nginx/nginx.conf,引用了/etc/nginx/conf.d

我们修改的话可以直接在/etc/nginx/nginx.conf配置文件中需改,不去引用另一个文件

windows系统nginx下载、安装、运行

支持四层负载均衡的nginx对版本有要求:需要1.19以上,我这边选择1.25.3进行测试

程序地址如下:

https://gitcode.net/zengliguang/nginx-1.25.3.git

通过下面命令进行下载

复制代码
git  clone  https://gitcode.net/zengliguang/nginx-1.25.3.git

双击start.bat运行nginx

双击stop.bat停止nginx

四层tcp、udp负载均衡及主备配置

配置文件如下

复制代码
stream {
  
    # tcp负载均衡
    upstream agent{
    
      server 192.168.10.85:5000 max_fails=1 fail_timeout=10s;
      server 192.168.10.10:5000 max_fails=1 fail_timeout=10s backup;
    
    }
    server {
        listen 5000;
        proxy_connect_timeout 5s;
		    proxy_timeout 10m;
        ###proxy_timeout 24h;
        ###这个参数在使用EMQ压力测试时很有用,刚开始设备的超时时间过段,导致测试一小会儿就出现 {shutdown,connack_timeout}
        proxy_pass agent;
    }

     # udp负载均衡, window系统不支持,需要linux系统才支持
     upstream dns_upstreams {
         server 192.168.59.8:30001;
         server 192.168.59.5:30001 backup;
     }

     server {
         listen 30001 udp reuseport;  #windows不支持;linux是支持的
         proxy_pass dns_upstreams;
         proxy_timeout 1s;
         proxy_responses 1;
         error_log logs/dns.log;
     }


}

四层tcp负载均衡及主备配置

主备配置

说明:

如果当前的服务器都处于忙碌状态,没有时间响应新的请求,这时如果配置了备用机.则备用机会承担一部分压力.如果主服务器压力减小,可以正常处理用户请求.则备用机处于等待状态.

配置文件如下

复制代码
stream {
  
    # tcp负载均衡
    upstream agent{
    
      server 192.168.10.85:5000 max_fails=1 fail_timeout=10s;
      server 192.168.10.10:5000 max_fails=1 fail_timeout=10s backup;
    
    }
    server {
        listen 5000;
        proxy_connect_timeout 5s;
		    proxy_timeout 10m;
        ###proxy_timeout 24h;
        ###这个参数在使用EMQ压力测试时很有用,刚开始设备的超时时间过段,导致测试一小会儿就出现 {shutdown,connack_timeout}
        proxy_pass agent;
    }

}

说明:

监听服务器为nginx服务所在服务器

反向代理到 192.168.10.85:5000 (主服务器)和192.168.10.10:5000(备服务器)

四层udp负载均衡及主备配置

主备配置

说明:

如果当前的服务器都处于忙碌状态,没有时间响应新的请求,这时如果配置了备用机.则备用机会承担一部分压力.如果主服务器压力减小,可以正常处理用户请求.则备用机处于等待状态.

配置文件如下

复制代码
stream {
    # udp负载均衡, window系统不支持,需要linux系统才支持
    upstream dns_upstreams {
        server 192.168.59.8:30001;
        server 192.168.59.5:30001 backup;
    }

    server {
        listen 30001 udp reuseport;  #windows不支持;linux是支持的
        proxy_pass dns_upstreams;
        proxy_timeout 1s;
        proxy_responses 1;
        error_log logs/dns.log;
    }

}

说明:

监听服务器为nginx服务所在服务器

反向代理到 192.168.59.8:30001 (主服务器)和192.168.59.5:30001(备服务器)

7层http负载均衡及主备配置

主备配置

说明:

如果当前的服务器都处于忙碌状态,没有时间响应新的请求,这时如果配置了备用机.则备用机会承担一部分压力.如果主服务器压力减小,可以正常处理用户请求.则备用机处于等待状态.

配置文件如下

复制代码
http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    keepalive_timeout  65;

    upstream backend {
        server 192.168.10.85:8082 backup;
        server 192.168.10.10:8082 ;
    
    }


    server {
        listen       8082;
        server_name  localhost;

    
        location / {
            proxy_pass http://backend;
        }

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
     
    }

说明:

监听服务器为nginx服务所在服务器

反向代理到 192.168.10.85:8082(备服务器)和192.168.10.10:8082(主服务器)

相关推荐
哆啦code梦1 小时前
Kong vs Nginx:微服务网关选型指南
nginx·kong·微服务网关
云小逸2 小时前
【网络通信】TCP核心原理深度解析:三次握手/四次挥手为基,拥塞控制与慢启动核心精讲
网络·网络协议·tcp/ip
Fᴏʀ ʏ꯭ᴏ꯭ᴜ꯭.3 小时前
Nginx性能调优与压测实战指南
运维·nginx
酣大智4 小时前
FTP--文件传输协议
运维·网络·网络协议·tcp/ip·华为
W说编程4 小时前
《UNIX网络编程卷1:套接字联网API》第8章:基本UDP套接字编程深度解析
网络·网络协议·tcp/ip·udp·unix·极限编程
百锦再4 小时前
《C#上位机开发从门外到门内》2-7:网络通信(TCP/IP、UDP)
tcp/ip·udp·c#·嵌入式·上位机·通信·下位机
繁星丶994 小时前
串口通信、TCP/UDP 通信和 MQTT 通信的概念与调试工具应用
单片机·tcp/ip·udp
岁岁种桃花儿4 小时前
流量入口Nginx动态发现K8s Ingress Controller实操指南
nginx·架构·kubernetes
运维行者_5 小时前
用Applications Manager监控HAProxy:保障负载均衡高效稳定
运维·开发语言·前端·数据库·tcp/ip·负载均衡·服务器监控
以太浮标5 小时前
华为eNSP模拟器综合实验之- 前缀列表(IP Prefix-list --匹配和控制路由信息的强大工具)
tcp/ip·华为·智能路由器·list