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

相关推荐
花鱼白羊42 分钟前
TCP Vegas拥塞控制算法——baseRtt 和 minRtt的区别
服务器·网络协议·tcp/ip
苹果醋34 小时前
Golang的文件加密工具
运维·vue.js·spring boot·nginx·课程设计
୧⍢⃝୨ LonelyCoder10 小时前
FreePBX修改IP地址和端口以及添加SSL证书开启HTTPS访问
tcp/ip·https·ssl
Ven%11 小时前
如何在防火墙上指定ip访问服务器上任何端口呢
linux·服务器·网络·深度学习·tcp/ip
神的孩子都在歌唱12 小时前
TCP/IP 模型中,网络层对 IP 地址的分配与路由选择
网络·tcp/ip·智能路由器
苹果醋314 小时前
2020重新出发,MySql基础,MySql表数据操作
java·运维·spring boot·mysql·nginx
苹果醋31 天前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
群联云防护小杜1 天前
如何给负载均衡平台做好安全防御
运维·服务器·网络·网络协议·安全·负载均衡
MuLogin_Browser1 天前
如何保障多个Facebook账号稳定运行:一账号一稳定IP?
服务器·tcp/ip·facebook
我叫czc1 天前
【python高级】342-TCP服务器开发流程
服务器·网络·tcp/ip