Nginx集群负载均衡配置完整流程-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

今天良哥带你来做一个nginx集群的负载均衡配置的完整流程。

一、准备工作

本次搭建的操作系统环境是win11linux可配置类同。

1首先下载nginx。

下载地址为http://nginx.org/en/download.html
良哥下载的是1.24.0 版本
在这里插入图片描述

2建立工作目录

下载到硬盘后解压三份目录存放如下
在这里插入图片描述
其中master为主节点负责代理分发请求。slave1、slave2负荷提供应用服务读者可根据需要将其更换为tomcat或java后端服务。

二、配置集群

1配置从机

①修改默认主页
为了查看配置效果我们首先需要将两个nginx从机的默认主页修改一下。
进入slave1的html目录使用文本编辑器打开index.html
在这里插入图片描述
添加一行内容如下
在这里插入图片描述

slave2类同添加的内容为

I am server: slave-2

②修改nginx.conf配置文件
进入slave1的conf目录用记事本打开nginx.conf文件
在这里插入图片描述
将侦听端口改为8081
在这里插入图片描述

slave2类同

端口设置为8082

2配置主机

进入master主机目录用记事本打开配置文件
在这里插入图片描述
在http节点中添加配置

    ## 4.1七层负载均衡节点列表配置
    upstream backend {
		##least_conn;
		server 127.0.0.1:8081;
		server 127.0.0.1:8082;
	}

在http的server节点中添加配置

    ## 4.2七层负载均衡代理配置
	location / {
		proxy_pass http://backend;
	}

在这里插入图片描述

三、验证效果

将三个nginx服务启起来。
打开浏览器在地址栏输入 http:localhost 回车。
1浏览器页面显示内容为 I am server: slave-1说明请求被分发到了slave1的服务端上去了如下
在这里插入图片描述
2刷新页面浏览器内容显示 I am server: slave-2说明请求被分发到了slave2的服务端去了如下
在这里插入图片描述
重复刷新页面内容会在上述两个中切换说明请求已经被轮询分发到不同的后端节点了。

四、扩展知识

1四层负载均衡配置

四层负载均衡数据包是在底层就进行了分发而七层负载均衡数据包则在最顶端进行分发。因此四层负载均衡的效率比七层负载均衡的要高但是四层负载均衡不能识别域名只能配置IP+端口模式进行访问而七层负载均衡配置域名访问的。
具体配置如下
注意stream模块的位置要在http模块上方同时proxy_pass的书写方式也有不同。
在这里插入图片描述

2nginx的负载均衡策略

负载均衡策略包括三种轮询默认策略、ip_haship哈希策略、least_conn最少连接策略配置在upstream节点中如下
在这里插入图片描述

1.轮询默认
每个请求按照请求时间顺序分配到不同的后端服务器如果后端服务器挂了则自动剔除。
此策略还可以设置权重指定轮询的频率weight和访问率成正比用于后端服务器性能不均匀的情况。

2.ip_hash
客户端ip地址被用作hash key来判断客户端请求应该发送到哪个服务器这种方法保证了来自相同客户端的请求总是发送到相同服务器。

3.least_conn
最少连接策略nginx会尽量不让负载繁忙的应用服务器上负载过多的请求相反的会把新的请求发送到比较不繁忙的服务器。

配置示例如下

http {
	upstream serverlist{
        ip_hash;
        ##least_conn;
        ## 屏蔽上述两个参数即采用默认的策略轮询
        server www.address1.com weight=3;// 或者ip+端口  不需要加入http/https前缀
        server www.address2.com weight=2;
        server www.address3.com; // 默认 weight=1
    }
    server {
        listen 80;
        location / {
            proxy_pass http://serverlist;
        }
    }
}

3故障下线、备份服务、访问失败等配置

1.down
假如有一台主机是出了故障或者下线了要暂时移出那可以把它标为down表示请求是会略过这台主机的。

upstream serverlist{
        server www.address1.com; // 或者ip+端口  不需要加入http/https前缀
        server www.address2.com down;
}

2.backup
backup是指备份的机器相对于备份的机器来说其他的机器就相当于主要服务器只要当主要服务器不可用的时候才会用到备用服务器。

upstream serverlist{
        server www.address1.com; // 或者ip+端口  不需要加入http/https前缀
        server www.address2.com backup;
}

3.max_fails和fail_timeout
默认情况下max_fails的值为1表示的是请求失败的次数请求1次失败就换到下台主机。另外还有一个参数是fail_timeout表示的是请求失败的超时时间在设定的时间内没有成功那作为失败处理。

upstream serverlist{
        server www.address1.com max_fails=2; // 或者ip+端口  不需要加入http/https前缀
        server www.address2.com backup;
}
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: nginx

“Nginx集群负载均衡配置完整流程-CSDN博客” 的相关文章