点击联系客服
客服QQ: 客服微信:

中山老站长

 找回密码
 立即注册
查看: 1401|回复: 50

nginx负载平衡

[复制链接]

1

主题

1

帖子

-7

积分

限制会员

积分
-7
发表于 2021-10-1 07:29:02 | 显示全部楼层 |阅读模式



负载均衡简介:

负载平衡由多个服务器对称地组成一个服务器集合,每个服务器具有同等的位置,并且无需其他服务器的支持即可单独提供外部服务。存在将外部发送的请求平均分配给对称结构中一台服务器的工作模式,收到请求的服务器独立响应客户的请求。负载平衡将客户请求平均分布到服务器阵列,快速收集重要数据,并解决许多并发访问服务问题。

负载均衡作用:

1、转发功能

根据特定算法[加权、轮询],将客户端请求转发到其他应用程序服务器,从而减少单个服务器的压力,提高系统并发性。

2、消除错误

通过心跳检查应用程序服务器当前是否正常工作,如果服务器持续时间中断,则自动将请求发送到其他应用程序服务器。

3、恢复追加

检测到故障的应用程序服务器恢复操作后,将自动添加到用户请求处理组。

一、环境

服务器1、nginx安装、Tomcat

服务器2,Tomcat安装

二、nginx配置

Upstream  backend  {

server  192 . 168 . 60 . 233 weight=1;

server  192 . 168 . 40 . 215 weight=2;

}

服务器{

Listen  80

Listen[33603360]:80;

server  _ name  127 . 0 . 0 . 1;

根/usr/share/nginx/html:

位置/{

Proxy  _ pass3358 back  end

Proxy  _ redirect  default

}

error  _ page  500 502 503 504/50x  . html;

位置=/50x.html  {

根html

}

}

三、测试








刷新页面搜索页面已更改,证明加载配置成功。我分配的权重第二次是第一次的两倍,所以第二次发生的概率会是第一次的两倍。

四、后续问题

关闭60.233的Tomcat并多次刷新页面后,会出现40.215tomcat页面,但有时速度快,速度慢。这意味着,如果nginx将请求转发到40.215,服务器将立即成功跳跃,但如果移动到60.233。
;因为60.233的tomcat已经关闭了,所以会出现一段等待响应过程的过程,要等它失败后才会转到40.215的tomcat。
而这个等待响应的时间我们是可以配置的。

这个时间由以下3个参数控制:
proxy_connect_timeout:与服务器连接的超时时间,默认60s
fail_timeout:当该时间内服务器没响应,则认为服务器失效,默认10s
max_fails:允许连接失败次数,默认为1

等待时间 = proxy_connect_timeout + fail_timeout * max_fails

        upstream  backend {   
            server    192.168.60.233  weight=1 fail_timeout=2s max_fails=2;  
            server    192.168.40.215  weight=2 fail_timeout=2s max_fails=2;
        }     
        server {  
            listen       80;
            listen       [::]:80;
            server_name  127.0.0.1;
            root         /usr/share/nginx/html;
        location / {  
                proxy_pass http://backend;  
                proxy_redirect default;  
                proxy_connect_timeout 2s;
            }  
            error_page   500 502 503 504  /50x.html;  
            location = /50x.html {  
                root   html;  
            }  
        }
如图,proxy_connect_timeout + fail_timeout * max_fails只需要等待6s。

五、负载均衡策略
1、轮询
       这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。

        upstream  backend {   
            server    192.168.60.233;  
            server    192.168.40.215;
        }  
2、最少连接
        把请求分配到连接数最少的server

upstream  fengzp.com {   
    least_conn;
        server    192.168.60.233;  
        server    192.168.40.215;
}
3、权重
        weight指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍。

    upstream  backend {   
        server    192.168.60.233  weight=1;  
        server    192.168.40.215  weight=2;
    }  
4、ip_hash
        每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。

upstream  fengzp.com {   
    ip_hash;
        server    192.168.60.233;  
        server    192.168.40.215;
}
ip_hash可以和weight结合使用  
端口号我隐藏掉了,打架测试的时候可以加上!
回复

使用道具 举报

1

主题

605

帖子

-383

积分

限制会员

积分
-383
发表于 2021-10-1 07:29:31 | 显示全部楼层
看帖回帖是美德!
回复

使用道具 举报

0

主题

589

帖子

-355

积分

限制会员

积分
-355
发表于 2021-10-1 07:49:53 | 显示全部楼层
沙发!沙发!
回复

使用道具 举报

1

主题

663

帖子

-417

积分

限制会员

积分
-417
发表于 2021-10-1 08:10:09 | 显示全部楼层
有竞争才有进步嘛
回复

使用道具 举报

1

主题

605

帖子

-359

积分

限制会员

积分
-359
发表于 2021-10-1 08:30:49 | 显示全部楼层
路过,学习下
回复

使用道具 举报

1

主题

582

帖子

-345

积分

限制会员

积分
-345
发表于 2021-10-1 08:50:56 | 显示全部楼层
真是 收益 匪浅
回复

使用道具 举报

1

主题

614

帖子

-383

积分

限制会员

积分
-383
发表于 2021-10-1 09:11:02 | 显示全部楼层
不错,支持下楼主
回复

使用道具 举报

1

主题

587

帖子

-377

积分

限制会员

积分
-377
发表于 2021-10-1 09:31:16 | 显示全部楼层
没看完~~~~~~ 先顶,好同志
回复

使用道具 举报

0

主题

593

帖子

-360

积分

限制会员

积分
-360
发表于 2021-10-1 09:51:37 | 显示全部楼层
我抢、我抢、我抢沙发~
回复

使用道具 举报

1

主题

600

帖子

-372

积分

限制会员

积分
-372
发表于 2021-10-1 10:11:45 | 显示全部楼层
好帖,来顶下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图版|手机版|小黑屋|中山@IT精英团

GMT+8, 2022-8-15 10:56 , Processed in 0.487428 second(s), 30 queries .

Powered by Discuz! X3.4

© 2020 Comsenz Inc.

快速回复 返回顶部 返回列表