Nginx负载均衡4种方案
1、轮询
轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
配置的例子如下:
http{
upstream sampleapp {
server <<dns entry or IP Address(optional with port)>>;
server <<another dns entry or IP Address(optional with port)>>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
上面只有1个DNS入口被插入到upstream节,即sampleapp,同样也在后面的proxy_pass节重新提到。
2、最少连接
Web请求会被转发到连接数最少的服务器上。
配置的例子如下:
http{
upstream sampleapp {
least_conn;
server <<dns entry or IP Address(optional with port)>>;
server <<another dns entry or IP Address(optional with port)>>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
上面的例子只是在upstream节添加了least_conn配置。其它的配置同轮询配置。
3、IP地址hash
前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,
因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。
要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。
这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
配置的例子如下:
http{
upstream sampleapp {
ip_hash;
server <<dns entry or IP Address(optional with port)>>;
server <<another dns entry or IP Address(optional with port)>>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
上面的例子只是在upstream节添加了ip_hash配置。其它的配置同轮询配置。
4、基于权重的负载均衡
基于权重的负载均衡即Weighted Load Balancing,这种方式下,
我们可以配置Nginx把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
配置的例子如下:
http{
upstream sampleapp {
server <<dns entry or IP Address(optional with port)>> weight=2;
server <<another dns entry or IP Address(optional with port)>>;
}
....
server{
listen 80;
...
location / {
proxy_pass http://sampleapp;
}
}
上面的例子在服务器地址和端口后weight=2的配置,
这意味着,每接收到3个请求,前2个请求会被分发到第一个服务器,第3个请求会分发到第二个服务器,其它的配置同轮询配置。
还要说明一点,基于权重的负载均衡和基于IP地址哈希的负载均衡可以组合在一起使用。
Nginx负载均衡4种方案的更多相关文章
- Nginx记录-nginx 负载均衡5种配置方式(转载)
nginx 负载均衡5种配置方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight和访问比率成 ...
- nginx 负载均衡5种配置方式
nginx 负载均衡5种配置方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight 指定轮询几率,weight和访问比率成正比, ...
- Nginx 负载均衡4种模式
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/80541464 本文出自[赵彦军的博客] 4 种负载均衡算法 upstream 支持 ...
- Nginx负载均衡的4种方式 :轮询-Round Robin 、Ip地址-ip_hash、最少连接-least_conn、加权-weight=n
这里对负载均衡概念和nginx负载均衡实现方式做一个总结: 先说一下负载均衡的概念: Load Balance负载均衡是用于解决一台机器(一个进程)无法解决所有请求而产生的一种算法. 我们知道单台服务 ...
- nginx负载均衡的5种策略及原理
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/qq_35119422/article/de ...
- 161028、Nginx负载均衡实现tomcat集群方案简要小结
重点两部分:一.负载均衡二.tomcat集群 所谓tomcat集群,就是可以向外提供并行服务的多台机器,任何一台服务器宕机,其它服务器可以替代它向外提供服务,而不影响用户访问. Nginx是一个常用的 ...
- Nginx负载均衡的5种策略(转载)
Nginx的upstream目前支持的5种方式的分配 轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. upstream backserver { s ...
- nginx负载均衡(5种方式)、rewrite重写规则及多server反代配置梳理
Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案.nginx可以用轮询.IP哈希.URL哈希等方式调度后端服务器,同时也能提供健康检查功能 ...
- Nginx负载均衡中后端节点服务器健康检查的一种简单方式
摘自:https://cloud.tencent.com/developer/article/1027287 一.利用nginx自带模块ngx_http_proxy_module和ngx_http_u ...
- (转)nginx负载均衡(5种方式)、rewrite重写规则及多server反代配置梳理
Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案.nginx可以用轮询.IP哈希.URL哈希等方式调度后端服务器,同时也能提供健康检查功能 ...
随机推荐
- C# 数字转大写汉字
1.数字转换成汉字大写public string NumToChinese(string x) { //数字转换为中文后的数组 string[] P_array_num = new string[] ...
- $(...).bootstrapTable is not a function (已解决)
1.首先保证Jquery是不是在所有js最前面引入且引入地址正确能打开 2.页面jquery不能重复引入,我这边就是重复引用了导致报错的
- 原子类Atomic
前言 非阻塞算法:如果在某种算法中,一个线程的失败或挂起不会导致其他线程也失败或挂起,那么这种算法就被称为非阻塞算法.如果在算法的每个步骤中都存在某个线程执行下去,那么这种算法也被称为无锁(Lock_ ...
- MySQL的Temporary Files存放路径
在Linux环境中MySQL用TMPDIR环境变量来设置temporary files的路径,如果没有设置,MySQL会用系统默认 /tmp, /var/tmp或/usr/tmp. 1.当排序时(OR ...
- Python算法教程_中文版书籍 程序员必备 免费下载
Python算法教程_中文版免费下载地址 提取码:55kh 内容简介 · · · · · · 本书用Python语言来讲解算法的分析和设计.本书主要关注经典的算法,但同时会为读者理解基本算法问题和解 ...
- 通过url跳转到页面锚点
在需要跳到的页面加: function GetQueryString(name) { var reg = new RegExp("(^|&)" + name ...
- linux命令行大量零碎练习习题集-打包未整理
linux命令行大量零碎练习习题集-打包未整理最近看完了一本linux书籍,想着做题来检测和巩固一下,于是打算去买本linux命令集习题去做做.但是没有找到相关的书籍,于是只能在网上随便找找.但是很多 ...
- [PHP]流程控制的替代语法:endif/endwhile/endfor使用介绍
我们经常在wordpress一类博客程序的模板里面看到很多奇怪的PHP语法,比如: 代码如下: <?php if(empty($GET_['a'])): ?> <font color ...
- Docker之Nginx保姆级别安装
Docker之Nginx保姆级别安装: 如果觉得样式不好:跳转即可 http://www.lifengying.site/(md文件复制过来有些样式会不一样) 学英语网站项目:自己先保证Redis.N ...
- Java复习篇3---基础概念
关键字 关键字:被Java赋予了特定含义的英文单词 关键字的字母全是小写 常用的代码编辑器,针对关键字会有特殊的颜色标记,非常直观 例如: class: 用于(创建\定义)一个类,后面紧跟类名. 类是 ...