网站备案 拉黑,石家庄广告公司前十名,投稿平台在哪里找,有专业做网站的今天#xff0c;良哥带你来做一个nginx集群的负载均衡配置的完整流程。
一、准备工作
本次搭建的操作系统环境是win11#xff0c;linux可配置类同。
1#xff09;首先#xff0c;下载nginx。
下载地址为#xff1a;http://nginx.org/en/download.html 良哥下载的是良哥带你来做一个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 weight3;// 或者ip端口 不需要加入http/https前缀server www.address2.com weight2;server www.address3.com; // 默认 weight1}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_fails2; // 或者ip端口 不需要加入http/https前缀server www.address2.com backup;
}