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(主服务器)

相关推荐
重回19812 小时前
企业微信可信IP配置的Python完美解决方案
网络协议·tcp/ip·企业微信
tang7778914 小时前
对抗高级反爬:基于动态代理 IP 的浏览器指纹模拟与轮换策略
网络·网络协议·tcp/ip
null_null99917 小时前
宝塔nginx http转https代理
nginx·http·https
刘一说17 小时前
CentOS Stream 网络故障排查:静态IP丢失、无法访问的完整解决方案
linux·tcp/ip·centos
QT 小鲜肉19 小时前
【QT/C++】Qt网络编程进阶:TCP网络编程的基本原理和实际应用(超详细)
c语言·开发语言·网络·c++·qt·学习·tcp/ip
张人玉1 天前
C# TCP 服务器和客户端
服务器·tcp/ip·c#
雯0609~1 天前
宝塔配置:IP文件配置,根据端口配置多个项目文件(不配置域名的情况)
服务器·网络协议·tcp/ip
稚辉君.MCA_P8_Java1 天前
深入理解 TCP;场景复现,掌握鲜为人知的细节
java·linux·网络·tcp/ip·kubernetes
_Johnny_1 天前
Ubuntu 配置临时 IP 和 VLAN
tcp/ip·ubuntu·php
Freed&2 天前
《Nginx进阶实战:反向代理、负载均衡、缓存优化与Keepalived高可用》
nginx·缓存·负载均衡