Nginx 负载均衡
一、负载均衡 - 初探
资料参考:
https://zhuanlan.zhihu.com/p/89356016
https://juejin.im/post/5e60edbf5188254940670f75
服务器这边使用了 Nodejs 分别启两个服务 7001 7002 和 两台机器 启动 7001
Nginx 这边使用 upstream
nginx的upstream目前支持的5种方式的分配
1、轮询(默认) 本地测试了这种
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
1 | upstream node { |
2 - 4 没有测试过 复制的….
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
1 | upstream backserver { |
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
1 | upstream backserver { |
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
1 | upstream backserver { |
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
1 | upstream backserver { |
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails次失败后,暂停的时间 (复制的…
在 Nginx 定义 测试机
1 | http { |
1 | nginx -t |
因为 egg 定义的 router 返回了 port 直接访问 127.0.0.1:7000 可以查看结果 随机返回 7001/7002
测试用了 jmeter 但是接口没异常 jmeter 倒是g了 使用不太熟练 请求次数太大了 但是效果还是可以看出来的