当前位置:   article > 正文

nginx负载均衡简介,一般轮询、加权轮询、ip_hash等负载均衡模式配置介绍_nginx ip hash

nginx ip hash

目录

一.负载均衡含义简介

二.nginx负载均衡配置方式

准备三台设备:

2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容

upstream内参数

1.一般轮询负载均衡

(1)含义

(2)配置

(3)测试

2.加权轮询负载均衡

(1)含义

(2)配置

(3)测试

(4)其他常用参数

3.ip_hash负载均衡

(1)含义

(2)配置

(3)测试

4.第三方模块负载均衡(以fair为例)

(1)像fair、url_hash等第三方模块都需要添加相应的模块和软件包

(2)配置


一.负载均衡含义简介

就是为了减轻web、dns等服务器再接收高并发流量请求时的压力,在接受到请求时将负载分摊到其他多个服务器上,提高服务的响应速度和体验感

二.nginx负载均衡配置方式

准备三台设备:

2.190均衡服务器,2.191web服务器1,2.160web服务器2,三台设备均安装nginx,两台web服务器均有网页内容

  1. [root@localhost conf]# curl 192.168.2.160
  2. here 160
  3. [root@localhost conf]# curl 192.168.2.191
  4. here 191

注意:负载均衡的配置一般都放在upstream块内 

upstream内参数

server xxxxxxxreal server地址,不写端口默认80,高并发情况下IP可以换位域名
weight=数字
服务器的权重,默认值是 1, 数字越大表示接受的请求比例越大
max_fails=数字
Nginx 尝试连接后端主机失败的次数,这个值是配合proxy_next_upstream、 fastcgi_next_upstream 和memcached_next_upstream 这三个参数来使用的。当 nginx 接收后端服务器返回这三个参数定义的状态码时,会将这个请求转发给正常工作的后端服务器
fail_timeout=time
与max_fails配合使用,在max_fails 定义的失败次数后,距离下次检查的间隔时间,默认是 10s 。 如果 max_fails是 5 , 它就检测 5 次,如果 5 次都是 502, 那么,它就会根据 fail_timeout的值,等待 10s 再去检查,还是只检查一次,如果持续 502, 在不重新加载 Nginx 配置的情况下,每隔 10s都只检查一次。
backup
热备配置( RS 节点的高可用),当前面激活的 RS 都失败后会自动启用热备 RS
这标志着这个服务器作为备份服务器,若主服务器全部宕机了,就会向它转
发请求。注意:当负载调度算法为 ip_hash 时,后端服务器在负载均衡调度中
的状态不能是 weight backup
down
标志着服务器永远不可用,这个参数可配合 ip_hash 使用

1.一般轮询负载均衡

(1)含义

一般轮询属于是负载均衡默认配置模式,将请求按照时间先后顺序分配到不同的服务器进行处理,若部分服务器出现宕机,会被自动剔除。

(2)配置

  1. server {
  2. listen 192.168.2.190;
  3.                 server_name www.aabb.com;
  4.                 error_log /usr/local/src/nginx-1.22.0/logs/error.log;
  5.                 access_log /usr/local/src/nginx-1.22.0/logs/access.log;
  6.                 location / {
  7.                         proxy_pass http://remo; #可以理解为代理的站点
  8.                 }
  9. }
  10. upstream remo { #代理站点内的主机,可加端口,默认80
  11. server 192.168.2.191;
  12.                 server 192.168.2.160;
  13. }

(3)测试

不断刷新会根据时间先后顺序在两台服务器之间交替

908a8b384f55460c933c1787d2d972fc.png

2.加权轮询负载均衡

(1)含义

通过weight指定轮询的权重比率(与访问率成正比),应对后端服务器性能不一的情况,性能高的服务器可以设置较高权重,反之则设置较低。这个方式是按照平滑加权轮询算法进行分配,权重值越高被分配到的几率就高。

(2)配置

像这个例子就是它们的总和作为一个循环,4次内出现1次191和3次160,下个4次也是如此

  1. server {
  2. listen 192.168.2.190;
  3. server_name www.aabb.com;
  4. error_log /usr/local/src/nginx-1.22.0/logs/error.log;
  5. access_log /usr/local/src/nginx-1.22.0/logs/access.log;
  6. location / {
  7. proxy_pass http://remo;
  8. }
  9. }
  10. upstream remo {
  11. server 192.168.2.191 weight=1;
  12. server 192.168.2.160 weight=3;
  13. }

(3)测试

访问4次

c9f64945693c4ed9baa0f3234b9a1fa7.png

(4)其他常用参数

直接接着weight后面写即可

  1. upstream remo {
  2. server 192.168.2.191 weight=1;
  3. server 192.168.2.160 weight=3;
  4. }

3.ip_hash负载均衡

(1)含义

每个用户发出的请求会按照ip_hash的记过进行分配,分配后的结果即每个访问者固定了的服务器了(可以有效解决动态网页中的连接共享问题)

(2)配置

  1. server {
  2. listen 192.168.2.190;
  3. server_name www.aabb.com;
  4. error_log /usr/local/src/nginx-1.22.0/logs/error.log;
  5. access_log /usr/local/src/nginx-1.22.0/logs/access.log;
  6. location / {
  7. proxy_pass http://remo;
  8. }
  9. }
  10. upstream remo {
  11. ip_hash;
  12. server 192.168.2.191;
  13. server 192.168.2.160;
  14. }
  15. [root@localhost html]# netstat -n | grep 80 |wc -l
  16. 30

(3)测试

如图所示就固定给160服务器了,也只有160服务器的访问次数增加了

  1. #160设备上
  2. [root@localhost html]# netstat -n | grep 80 |wc -l
  3. 30

704416b1a27e468892168504a5b07b8f.png

4.第三方模块负载均衡(以fair为例)

(1)像fair、url_hash等第三方模块都需要添加相应的模块和软件包

(2)配置

下载fair压缩包,解压增加fair模块

  1. [root@localhostnginx-1.22.0]#./configure --add-module=/usr/local/src/nginx-1.22.0/conf/nginx-upstream-fair-master
  2. [root@localhost nginx-1.22.0]# make
  3. [root@localhost nginx-1.22.0]# make install

修改配置文件 

  1. server {
  2.                 listen 192.168.2.190;
  3.                 server_name www.aabb.com;
  4.                 error_log /usr/local/src/nginx-1.22.0/logs/error.log;
  5.                 access_log /usr/local/src/nginx-1.22.0/logs/access.log;
  6.                 location / {
  7.                         proxy_pass http://remo;
  8.                 }
  9. }
  10. upstream remo {
  11.                 server 192.168.2.191;
  12.                 server 192.168.2.160;
  13.                 fair;
  14. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/586434
推荐阅读
相关标签
  

闽ICP备14008679号