英文原文地址:http://nginx.org/en/docs/http/ngx_http_upstream_module.html

大纲:

  1. 示例
  2. 指令
  3. 嵌入变量

ngx_http_upstream_module模块用来定义一个可以通过proxy_pass, fastcgi_pass和memcached_pass指令引用的服务器群组

示例配置

 upstream backend {
server backend1.example.com weight=;
server backend2.example.com:;
server unix:/tmp/backend3; server backup1.example.com: backup;
server backup2.example.com: backup;
} server {
location / {
proxy_pass http://backend;
}
}

动态配置服务器组仅仅在商业版本中可以使用

示例:

 upstream appservers {
zone appservers 64k; server appserv1.example.com weight=;
server appserv2.example.com: fail_timeout=5s slow_start=30s;
server 192.0.2.1 max_fails=; server reserve1.example.com: backup;
server reserve2.example.com: backup;
} server {
location / {
proxy_pass http://appservers;
health_check;
} location /upstream_conf {
upstream_conf;
allow 127.0.0.1;
deny all;
}
}

指令

upstream

语法: upstream name {...}
default:--
context:http

示例:

upstream backend {
server backend1.example.com weight=;
server 127.0.0.1: max_fails= fail_timeout=30s;
server unix:/tmp/backend3;
}

默认情况下,请求会根据权重循环分发到各个服务器。在上面的例子中,每7个请求的分发方法如下:5个请求发给backend1.example.com,第二和第三个服务器分别分发一个请求。如果在通讯过程中一个服务器出现了问题,则这次的请求会被分发给下一个服务器,以此类推,知道所有的服务器都被尝试过一次。如果从所有的服务器中都无法成功请求,客户端会收到最后一个服务器的结果。

server

 语法:    server address [parameters];
default: —
context: upstream

给一个服务器指定一个地址和其它参数。地址可以指定为域名或ip(可以指定端口),或使用添加“unix:”前缀的unix套接字(unix-domain socket)。在未指定端口的情况下,默认使用80端口。一个域名解析到多个ip相当于一次设定了多个服务器。(感觉翻译的很别扭)

下面是server中可设定的参数:

  • weight=number

    设置服务器的权重,默认值为1(值越大表示权重越高)

  • max_fails=number

    设置服务器最大的失败请求次数(中间还有很多。。。)。默认情况下失败请求次数为1,如果设置为0表示禁用请求计数。在proxy_next_upstream,fastcgi_next_upstream, and memcached_next_upstream 指令中也考虑到了失败请求次数。

  • fail_timeout=number

    设置: 

    • 请求失败超过特定次数视为服务器不可用
    • 请求超时视为服务器不可用

    默认情况下此参数的值为10秒

  • slow_start=time

    当一个服务器从不健康变为健康或从不可用到可用时设置过多长时把服务器的权重从0恢复为原设置的值。默认值为1,即是被禁用的。

    注:仅商业版可用

  • backup

    把此服务器标记为备用服务器。当主服务器不可用时会把请求分发到备用服务器。

  • down

    把一个服务器标记为永久不可用;通常和 ip_hash指令一起使用

示例:

 upstream backend {
server backend1.example.com weight=;
server 127.0.0.1: max_fails= fail_timeout=30s;
server unix:/tmp/backend3; server backup1.example.com: backup;
}

  

注:如果在服务器组中只有一个服务器,max_fails,fail_time_outslow_start参数将会被忽略,而且这个服务器也永远不会被标记为不可用

zone

syntax:    zone name size;
default: —
context: upstream

[Nginx][HttpUpstreamModule]翻译负载均衡的更多相关文章

  1. 【翻译】Nginx的HTTP负载均衡

    本文为翻译文,原文地址:http://nginx.org/en/docs/http/load_balancing.html 介绍 将请求负载均衡到多个应用实例是一个常用的技术,它起到优化资源使用率.最 ...

  2. nginx安装及负载均衡配置

    Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二 ...

  3. Nginx 简单的负载均衡配置示例(转载)

    原文地址:Nginx 简单的负载均衡配置示例(转载) 作者:水中游于 www.s135.com 和 blog.s135.com 域名均指向 Nginx 所在的服务器IP. 用户访问http://www ...

  4. 观nginx与lvs负载均衡的较量

    在技术工作者中,常用到的就是lvs负载均衡和Nginx负载均衡了.这两者也是比较普及的.那么,根据不同的需求,两者存在着不同的优势.具体选择哪一个,还要看您的要求了.那么我们在此为大家分享一篇文章,对 ...

  5. 如何使用Weave以及Docker搭建Nginx反向代理/负载均衡服务器

    Hi, 今天我们将会学习如何使用 Weave 和 Docker 搭建 Nginx 的反向代理/负载均衡服务器.Weave 可以创建一个虚拟网络将 Docker 容器彼此连接在一起,支持跨主机部署及自动 ...

  6. Nginx+Tomcat+Memcached负载均衡集群服务搭建

    操作系统:CentOS6.5  本文档主要讲解,如何在CentOS6.5下搭建Nginx+Tomcat+Memcached负载均衡集群服务器,Nginx负责负载均衡,Tomcat负责实际服务,Memc ...

  7. 基于nginx的tomcat负载均衡和集群

    要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了. 你可以自己写tomcat的扩展来保存SESSI ...

  8. nginx+tomcat+redis负载均衡及session共享

    概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...

  9. Nginx 简单的负载均衡配置示例

    http://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html 在此记录下Nginx服务器nginx.conf的配置文件说明, ...

随机推荐

  1. 2、Oracle Logminer性能测试

    Oracle Logminer性能测试 1 测试介绍 1.1 测试目的 通过模拟不同环境下LogMiner解析联机/归档日志文件运行情况,通过测试所获取的数据分析,通过对以下两点的验证来确定通过Log ...

  2. linux常见进程与内核线程

    发现大量jdb2进程占用io资源.jdb2进程是一个文件系统的写journal的进程 kthreadd:这种内核线程只有一个,它的作用是管理调度其它的内核线程.它在内核初始化的时候被创建,会循环运行一 ...

  3. 3D拓扑自动布局之Node.js篇

    上篇将3D弹力布局的算法运行在Web Workers后台,这篇我们将进一步折腾,将算法运行到真正的后台:Node.js,事先申明Node.js篇和Web Workers篇一样,在这个应用场景下并不能提 ...

  4. 流行的ios开源项目

    本文介绍一些流行的iOS的开源项目库 1.AFNetworking 更新频率高的轻量级的第三方网络库,基于NSURL和NSOperation,支持iOS和OSX.https://github.com/ ...

  5. C#中方法的调用

    C#中方法的调用 1.同一个类中方法的调用: 静态方法可以直接调用静态方法 静态方法不能直接调用非静态方法,静态方法先生成. 非静态方法可以直接调用静态方法 如果静态方法要调用非静态的方法,必须使用实 ...

  6. 如何快速开发树形列表和分页查询整合的WInform程序界面

    我在做Winform界面的时候,一般都是统一化处理,界面顶部放置一些字段条件供查询,下面就是分页查询列表,展示相关的数据.但有时候碰到一些表字段内容分类比较多,有一些特别重要,如果放在一个树形列表来进 ...

  7. php查询IP地址归属等信息

    淘宝公司提供了一个很好用的IP地理信息查询接口.在这里:http://ip.taobao.com/TaobaoIPQuery2这个类将极大的简化相关的信息查询. 类 TaobaoIPQuery2 文件 ...

  8. 【jQuery基础学习】11 jQuery性能简单优化

    关于性能优化 合适的选择器 $("#id")会直接调用底层方法,所以这是最快的.如果这样不能直接找到,也可以用find方法继续查找 $("p")标签选择器也是直 ...

  9. 使用EasyUI的插件前需要引入的文件

    一.使用EasyUI的插件需要引入一些文件 1.引入相关文件 easyui.css: easyUi的样式文件 icon.css:easyUI的图标样式文件 easyui.min.js:easyUi的类 ...

  10. API的非向后兼容性无论如何通常代表着一种比较差的设计

    不管一个类库或者工具方法实现多么的好,如果无法做到向后兼容性,通常会给用户带来很大的升级成本,很多对此的依赖如果希望在后续的升级和维护期间使用该类库的其他新增特性或者好处,将不得不推迟升级亦或是被迫接 ...