nginx通过upstream实现负载均衡
随着业务和用户不断增加,单台服务器无法满足业务需求,产生服务器集群的场景。为了能充分利用服务器集群,最理想的方式就是整个集群的利用率都很平均且稳定在理想值范围内。
负载均衡(Load Balance)就是为了满足能够均衡的利用整个服务器集群从而产生的一种算法 ,常见的实现策略有:随机、轮询、哈希、一致性哈希和加权。
nginx目前比较常用的模块有:
1. 轮询
定义:依次把客户端请求分配到不同的服务器中
配置示例:
upstream zhangQ {
server ip1:port1;
server ip2:port2;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://zhangQ;
}
}
2. 最少连接
定义:把客户端请求分配到连接数最少的服务器中
如果每台服务器处理业务的时间都一样,那么此策略与轮询差不多。
如果每台服务器处理业务的时间不一样,那么采用轮询算法会导致业务逻辑处理较慢的服务器压力越来越大负载较高,这样的业务场景,把客户端请求分配到连接数较少的服务器能达到更好的负载效果。
配置示例:
upstream zhangQ {
least_conn; #实际就是比轮询多这一行
server ip1:port1;
server ip2:port2;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://zhangQ;
}
}
3. ip_hash
定义:把访问的客户端的ip利用hash算法计算为一个数值,同一个数值会落到相同的服务器。
涉及到负载均衡基本上都会设计到session的保持,但使用ip_hash就不需要关注这个问题。
配置示例:
upstream zhangQ {
ip_hash; #实际就是比轮询多这一行
server ip1:port1;
server ip2:port2;
}
server {
listen ;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://zhangQ;
}
}
4. weight
定义:权重实际就是加权轮询,根据加权值会优先分配到权重高的服务器
服务器基本都是配置不一,高配置服务器通常都会比低配置服务器赋予较高的权重值。
配置示例:
upstream zhangQ {
server ip1:port1 weight=3; #加上weight
server ip2:port2 weight=1;
}
server {
listen ;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
proxy_pass http://zhangQ;
}
}
如果按照如上配置,就是每4次客户端请求,会有3次落在ip1上,1次落在ip2上。
附上upstream中常用的几个属性配置:
| 名称 | 定义 | 示例 |
| fail_timeout | 可以理解为熔断时间,经过这个配置的时间如果服务器没响应则失败 | fail_timeout=2s |
| max_fails | 最大失败数,默认值是1,当超过最大次数时,返回proxy_next_upstream模块定义的错误. | max_fails=2 |
| down | 有此标记的服务器不参与负载 | |
| backup | 当所有非backup服务器忙或者down的时候会请求这台服务器 |
nginx通过upstream实现负载均衡的更多相关文章
- Nginx配置upstream实现负载均衡
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- 【upstream】Nginx配置upstream实现负载均衡
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- Nginx配置upstream实现负载均衡及keepalived实现nginx高可用
(原文链接:http://www.studyshare.cn/blog-front//blog/details/1159/0 ) 一.准备工作 1.准备两个项目,发布到不同的服务器上,此处使用2个虚拟 ...
- Nginx配置upstream实现负载均衡1
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- Nginx使用upstream实现负载均衡
如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...
- [转帖]nginx upstream模块--负载均衡
nginx upstream模块--负载均衡 https://www.cnblogs.com/linjiqin/p/5494783.html Module ngx_http_upstream_modu ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- Nginx 服务器 之Nginx与tomcat实现负载均衡
本文讲解我们如何使用Nginx做反向带服务器,实现nginx与tomcat服务器集群做负载均衡. 一.nginx与tomcat实现负载均衡 1.在/usr/local/ngnix/conf 创建 ...
- Nginx代理功能与负载均衡详解
序言 Nginx的代理功能与负载均衡功能是最常被用到的,关于nginx的基本语法常识与配置已在上篇文章中有说明,这篇就开门见山,先描述一些关于代理功能的配置,再说明负载均衡详细. Nginx代理服务的 ...
随机推荐
- Linux 下载百度网盘大文件
Linux 下没有百度网盘客户端,用浏览器下载速度慢得急死人 鼠标移到链接处, 右键, 然后复制链接 接着在终端里输入 axel -n 50 -o filename.ext “粘贴链接到此处” axe ...
- 如何编译 opencv3 和 opencv_contrib(Linux)
本文以编译并安装OpenCV 3.3.0 为例,安装系统为 Linux x64 (Fedora 21),具体步骤如下: 1. 下载 Source code zip 压缩包 从下面网址,选择 openc ...
- jdbc 块提取方式
最近使用jdbc方式查询数据,保存为csv文件中.当然你可以在pl/sql中直接查出来,copy to excel就好了.但我想通过程序实现 1 @Test 2 public void test() ...
- sqlserver根据条件生成插入语句--单表
ALTER proc [dbo].[proc_insert] (@tablename varchar(256),@where varchar(max))asbeginset nocount ondec ...
- dbms_randon package
reference to wbsite:http://zhangzhongjie.iteye.com/blog/1948930#comments DBMS_RANDON PACKAGE: Define ...
- Grunt 使用(一)基础搭建
jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!废话不多说,直接上干货. 1.安装node.js并检查node -v 和 n ...
- 一句DOS命令搞定文件合并
用Dos的copy命令实现: copy a.js+b.js+c.js abc.js /b 将 a.js b.js c.js 合并为一个 abc.js,最后的 /b 表示文件为二进位文件,copy 命令 ...
- 工作好搭档(四):铷安居 H-C81 电脑桌
引言:工欲善其事,必先利其器.码农十年,与电脑打了二十多年的交道,也配置了一些过得去的装备.资金有限,更希望所有的投入都在刀刃上.写工作好搭档系列,是晒考虑的原因.思路.经验和教训.欢迎并希望大伙能一 ...
- 【2017.09.15 智能驾驶/汽车电子】汽车高级驾驶辅助ADAS常用传感器厂商:激光雷达篇
不定期更新,主要是汇总Internet上的激光雷达厂商资讯,不涉及技术,以备参考. 1. Innoviz:固态激光雷达公司 新闻链接:http://36kr.com/p/5092055.html 激光 ...
- IE和Firefox浏览器CSS兼容性技巧整理
转自:http://homepage.yesky.com/185/11484185all.shtml#p11484185 CSS兼容常用技巧(1) 更多精彩相关文章推荐: 各大浏览器 CSS3 和 H ...