码迷,mamicode.com
首页 > Web开发 > 详细

ngx_http_upstream_module模块

时间:2018-03-30 21:41:37      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:Linxu   Nginx   模块   

用于将多个服务器定义成服务器组,而由proxy_pass,fastcgi_pass等指令进行引用

1、upstream name { ... }(Context: http)

    定义后端服务器组,会引入一个新的上下文,默认调度算法是wrr

upstream httpdsrvs {
    server ...
    server...
    ...
}


2、server address [parameters];(Context:upstream)

    在upstream上下文中server成员,以及相关的参数;

    address的表示格式:

  • unix:/PATH/TO/SOME_SOCK_FILE

  • IP[:PORT]

  • HOSTNAME[:PORT]

    parameters:

  • weight=number 权重,默认为1

  • max_conns 连接后端报务器最大并发活动连接数,1.11.5后支持

  • max_fails=number 失败尝试最大次数;超出此处指定的次数时,server将被标记为不可用,默认为1

  • fail_timeout=time 后端服务器标记为不可用状态的连接超时时长,默认10s

  • backup 将服务器标记为“备用”,即所有服务器均不可用时才启用

  • down 标记为“不可用”,配合ip_hash使用,实现灰度发布

3、ip_hash 

    源地址hash调度方法

4、least_conn 

    最少连接调度算法,当server拥有不同的权重时其为wlc,当所有后端主机连接数相同时,则使用wrr,适用于长连接

5、hash key [consistent] 

    基于指定的key的hash表来实现对请求的调度,此处的key可以直接文本、变量或二者组合

    作用:将请求分类,同一类请求将发往同一个upstream server,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用

        hash $request_uri consistent;

        hash $remote_addr;

6、keepalive 连接数N;

    为每个worker进程保留的空闲的长连接数量,可节约nginx端口,并减少连接管理的消耗

7、health_check [parameters];

    健康状态检测机制;只能用于location上下文(该功能同server加参数max_fails=number,fail_timeout=time功能一样)

    常用参数:

  • interval=time检测的频率,默认为5秒

  • fails=number:判定服务器不可用的失败检测次数;默认为1次

  • passes=number:判定服务器可用的失败检测次数;默认为1次

  • uri=uri:做健康状态检测测试的目标uri;默认为/

  • match=NAME:健康状态检测的结果评估调用此处指定的match配置块

    注意:仅对nginx plus有效

8 match name { ... }

    对backend server做健康状态检测时,定义其结果判断机制;只能用于http上下文

    常用的参数:

  • status code[ code ...]: 期望的响应状态码

  • header HEADER[operator value]:期望存在响应首部,也可对期望的响应首部的值基于比较操作符和值进行比较body:期望响应报文的主体部分应该有的内容

    注意:仅对nginx plus有效


ngx_http_upstream_module模块

标签:Linxu   Nginx   模块   

原文地址:http://blog.51cto.com/13520924/2093144

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!