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

相关推荐
丶21363 小时前
【Nginx】在 Docker 上安装 Nginx 的详细指南
运维·nginx·docker
hanniuniu133 小时前
详细解读,F5服务器负载均衡的技术优势
运维·服务器·负载均衡
m0_635502203 小时前
Spring Cloud Gateway组件
网关·微服务·负载均衡·过滤器
掘根13 小时前
【网络】高级IO——poll版本TCP服务器
网络·数据库·sql·网络协议·tcp/ip·mysql·网络安全
友友马14 小时前
『 Linux 』HTTP(一)
linux·运维·服务器·网络·c++·tcp/ip·http
ZHOU西口14 小时前
微服务实战系列之玩转Docker(十五)
nginx·docker·微服务·云原生·swarm·docker swarm·dockerui
苹果醋318 小时前
react 路由 react-router/react-router-dom
运维·nginx
许野平18 小时前
Rust: Warp RESTful API 如何得到客户端IP?
tcp/ip·rust·restful·ip地址
不烦下雨c18 小时前
【网络】传输层协议TCP
网络·网络协议·tcp/ip
KookeeyLena519 小时前
IP池对数据爬取工作的帮助
网络·网络协议·tcp/ip