`
langgufu
  • 浏览: 2293971 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx负载均衡的4种方案配置实例(转)

阅读更多

1、轮询

轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。
配置的例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
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请求会被转发到连接数最少的服务器上。
配置的例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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地址哈希

前述的两种负载均衡方案中,同一客户端连续的Web请求可能会被分发到不同的后端服务器进行处理,因此如果涉及到会话Session,那么会话会比较复杂。常见的是基于数据库的会话持久化。要克服上面的难题,可以使用基于IP地址哈希的负载均衡方案。这样的话,同一客户端连续的Web请求都会被分发到同一服务器进行处理。
配置的例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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把请求更多地分发到高配置的后端服务器上,把相对较少的请求分发到低配服务器。
配置的例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
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种方案配置实例

    轮询即Round Robin,根据Nginx配置文件中的顺序,依次把客户端的Web请求分发到不同的后端服务器。 配置的例子如下: http{ upstream sampleapp { server &lt;&lt;dns&gt;&gt;; server &lt;&lt;another&gt;&gt;; } .... server{ ...

    keepalived+nginx实现双机主备

    Nginx 的配置文件中,我们指定了虚拟主机、服务器列表、负载均衡算法等参数。 五、优势和应用场景 使用 Keepalived 和 Nginx 实现双机主备可以带来以下几个优势: * 高可用性:使用 Keepalived 和 Nginx 可以实现...

    实战Nginx高性能Web服务器

    15、高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块 内容:讲述Nginx的HttpUpstreamModule如何实现对后端服务器的HTTP请求的负载均衡。 16、高性能Web服务器Nginx的配置与部署研究(16)小议...

    Nginx实战之反向代理WebSocket的配置实例

    实现方案 采用目前比较成熟的WebSocket技术,WebSocket协议为创建客户端和...在实际的生产环境中,要求多个WebSocket服务器必须具有高性能和高可用,那么WebSocket协议就需要一个负载均衡层,NGINX从1.3开始支持WebSoc

    Linux运维从入门到高级全套案例v3

    3.1. 1 构建NTP时间服务器 25 3.1. 2 构建DHCP服务器 27 3.1. 3 搭建Samba服务器 29 3.1. 4 搭建NFS服务器 32 ...7. Nginx负载均衡机制及常见问题 124 8. Linux运维职业规划 127 9. Linux运维面试总结 127

    haproxy+keepalived实现高可用负载均衡(实例配置)

    IP地址 用处192.168.5.55 MASTER192.168.2.73 BACKUP192.168.5.54 负载A192.168.5.57 负载B192.168.2.100 VIP 1、MASTER上安装haproxy 代码如下:wget ...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    1.5.2 负载均衡配置实例 1.5.3 防盗链配置实例 1.5.4 日志分割配置实例 1.6 Nginx性能优化技巧 1.6.1 编译安装过程优化 1.6.2 利用TCMalloc优化Nginx的性能 1.6.3 Nginx内核参数优化 1.7 实战Nginx与...

    Java思维导图xmind文件+导出图片

    Nginx反向代理服务器及负载均衡服务器配置实战 利用keepalived+Nginx实战Nginx高可用方案 基于Nginx实现访问控制、连接限制 Nginx动静分离实战 Nginx Location ReWrite 等语法配置及原理分析 Nginx提供https...

    cluster(集群):具有负载平衡和服务发现功能的Meteor集群解决方案

    簇 具有负载平衡和服务发现功能的Meteor... 我们需要再次重新配置负载均衡器。 这将重置所有现有的DDP连接。 然后,如果负载均衡器出现故障怎么办? 为了解决这个问题,我们需要添加一个在父母端工作的负载均衡器。

    数据脱敏大数据架构设计.docx

    现在针对以下几个需求进行讲解 1、支持冗余设计 2、支持任务自动分发,支持自动负载均衡 3、支持随时扩容节点而无需关停原有的系统和业务 架构和模块 架构图 数据脱敏大数据架构设计全文共4页,当前为第2页。...

    服务发现方案梳理及NetflixEureka简介

    CAP满足哪几部分failover方式是怎样语言机制Open-...通过Nginx来做了负载均衡/主备的这样做还是有两个问题:(1)Nginx本身成为一个故障点(2)连接数量翻倍,其中第二个问题曾导致我们的环境出现了nf_conntrac

    高性能Linux服务器构建实战:运维监控、性能调优与集群应用

    也是本书的核心,主要讲述了如何通过LVS+heartbeat、piranha、LVS+Keepalived来构建高可用的负载均衡集群,其次讲解了红帽集群套件RHCS的配置、管理、维护和监控,然后讲解了Oracle集群解决方案,即OracleRAC数据库...

    spring-boot:自动可扩展的Spring Boot集群

    负载均衡器(LB) -NGINX 1.10.1的dockerized模板 应用程序服务器(AS) -Java 8之上的带有Spring Boot 1.5.2的本机模板 因此,每个LB和AS容器都具有默认的限制,最多可包含16个cloudlet(每个节点等于2 GiB RAM和...

Global site tag (gtag.js) - Google Analytics