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

相关推荐
科技块儿1 天前
如何使用IP数据云提升网络风控、减少业务欺诈
网络·网络协议·tcp/ip
爬山算法1 天前
Netty(10)Netty的粘包和拆包问题是什么?如何解决它们?
服务器·网络·tcp/ip
那你能帮帮我吗1 天前
nginx路径相关配置汇总
nginx
JY.yuyu1 天前
TCP/UDP协议
网络·tcp/ip·udp
Evan芙1 天前
nginx日志管理及日志格式定制
运维·nginx
HunterMichaelG1 天前
【openSSH】Linux openEuler-20.03-x86-64服务器升级openSSH至10.2p1版本
tcp/ip·nginx
core5121 天前
Nginx 实战:如何通过代理转发下载中文文件并保留原文件名
运维·nginx·代理·下载·转发
Energet!c1 天前
Nginx access 日志通过 Filebeat 8.15.5 写入 Elasticsearch 8 实战指南
nginx·elasticsearch·filebeat·openresty
草根站起来1 天前
ip版SSL证书
服务器·tcp/ip·ssl
福大大架构师每日一题1 天前
nginx 1.29.4 发布:支持 HTTP/2 后端与加密客户端问候(ECH),多项功能优化与修复
运维·nginx·http