Nginx中ngx_http_upstream_module模块

用于将多个服务器?定义成服务器?组,?而
由 proxy_pass , fastcgi_pass 等指令进?行行引?用
upstream backend {
server backend1.example.com
weight=5;
server backend2.example.com:8080
;
server unix:/tmp/backend3;
server backup1.example.com:8080
backup;
server backup2.example.com:8080
backup;
}
server {
location / {
proxy_pass http://backend;
}
}
指令:
16.1 upstream
定义后端服务器?组,会引?入?一个新的上下?文
Syntax: upstream name { ... }
Default: —
Context: http
16.2 server
定义服务器? address ,可以将地址指定为域名或IP
地址,使?用可选端?口,或者指定为 unix: 前缀后指
定的 UNIX 域套接字路路径。如果未指定端?口,则使?用
端?口80
Syntax: server address [parameters];
Default: —
Context: upstream
参数:
weight=number # 权重,默认为1
max_conns # 连接后端报务器?最?大并发活动
连接数
max_fails=number # 连接后端服务器?最?大
失败次数,超出指定的次数时, server 将
被标记为不不可?用,默认为1
fail_timeout=time # 后端服务器?在指定超
时时间内未做出回应,也会被认为不不可?用,
默认10s
backup # 将服务器?标记为 backup ,表示备
份服务器?( sorry server ),即所有服务器?
均不不可?用时才启?用
down # 将服务器?标记为 down ,表示不不可
?用,配合 ip_hash 使?用,实现灰度发布
16.3 ip_hash
源地址 hash 调度?方法
Syntax: ip_hash;
Default: —
Context: upstream
16.4 least_conn
最少连接调度算法,当 server 拥有不不同的权重时其
为 wlc ,当所有后端主机连接数相同时,则使
?用 wrr ,适?用于?长连接
Syntax: least_conn;
Default: —
Context: upstream
16.5 hash
基于指定的 key 的 hash 表来实现对请求的调度,此
处的 key 可以直接?文本、变量量或?二者组合。将请求
分类,同?一类请求将发往同?一
个 upstreamserver ,使?用 consistent 参数, 将
使?用 ketama ?一致性 hash 算法,适?用于后端
是 Cache 服务器?(如 varnish )时使?用,提?高缓存
服务器?的缓存命中率
Syntax: hash key [consistent];
Default: —
Context: upstream
16.6 keepalive
为每个worker进程保留留的空闲的?长连接数量量,可节约
nginx端?口,并减少连接管理理的消耗
Syntax: keepalive connections;
Default: —
Context: upstream
16.7 health_check (商业版)
健康状态检测机制
Syntax: health_check [parameters];
Default: —
Context: location
参数:
interval=time # 检测的频率,默认为5秒
fails=number # 判定服务器?不不可?用的失败
检测次数;默认为1次
passes=number # 判定服务器?可?用的失败检
测次数;默认为1次
uri=uri # 做健康状态检测测试的?目标uri;
默认为/match=NAME:健康状态检测的结果
评估调?用此处指定的match配置块
16.8 match (商业版)
对 backend server 做健康状态检测时,定义其结
果判断机制
Syntax: match name { ... }
Default: —
Context: http
参数
status code[ code ...] # 期望的响应状
态码
header HEADER[operator value] # :期
望存在响应?首部,也可对期望的响应?首部的
值基于?比较操作符和值进?行行?比较
body # 期望响应报?文的主体部分应该有的内

原文地址:https://www.cnblogs.com/momenglin/p/11181810.html

时间: 2024-10-31 00:17:09

Nginx中ngx_http_upstream_module模块的相关文章

Nginx中gzip_static模块

在nginx中打开gzip压缩: gzip  on; gzip_min_length  1024; gzip_buffers     4 8k; gzip_types       text/plain application/x-javascript text/css text/html application/xml; 一般情况,需要设置一下gzip_min_length的值,建议设置成大于1k的字节数,小于1k可能会越压越大. 即: gzip_min_length 1024 gzip_typ

Nginx 中 HTTP模块初始化

概述 在前面的文章< Nginx 配置解析>简单讲解了通用模块的配置项解析,并且大概讲解了HTTP 模块的配置项解析过程,本文更具体的分析 HTTP 模块的初始化过程.HTTP 模块初始化过程主要有:上下文结构初始化.配置项解析.配置项合并.server 相关端口设置. HTTP 模块接口 ngx_http_module_t 结构体 在 Nginx 中,结构体 ngx_module_t 是 Nginx 模块最基本的接口.对于每一种不同类型的模块,都有一个具体的结构体来描述这一类模块的通用接口.

nginx中upstream模块的简单示例

本文所指的upstream是nginx的http模块中的内容对nginx来说,upstream可以在nginx上将后端服务器定义为服务器组,将不同后端不同的服务器划分为不同的组,再经过不同组内的调度算法实现负载均衡.和缓存设置类似,upstream需要先在http下定义,再被调用,方可正常使用.示例: http { -- upstream webserver { #定义名为webserver的组 server 192.168.1.111:80; server 192.168.1.222:80;

nginx中ngx_http_core_module模块

http核?心模块指令:套接字相关的配置3.1 server{ }设置虚拟服务器?的配置Syntax: server { ... }Default: —Context: httpserver {listen address[:PORT]|PORT;server_name SERVER_NAME;root /PATH/TO/DOCUMENT_ROOT;}3.2 server_name设置虚拟服务器?的名称Syntax: server_name name ...;Default: server_na

Nginx中ngx_http_proxy_module模块

该模块允许将请求传递给另?一台服务器?指令:1 ,proxy_pass设置代理理服务器?的协议和地址以及应映射位置的可选 URI .作为协议,可以指定“ http 或 https .可以将地址指定为域名或IP地址,以及可选端?口Syntax: proxy_pass URL;Default: —Context: location, if in location,limit_except如果 proxy_pass 后?面指定了了 uri ,则其会将 location 指定的 uri 给替换掉loca

nginx中ngx_http_access_module模块

实现基于IP的访问控制功能指令:4.1 allow允许访问指定的?网络或地址Syntax: allow address | CIDR | unix:| all;Default: —Context: http, server, location,limit_except4.2 deny拒绝访问指定的?网络或地址Syntax: deny address | CIDR | unix: |all;Default: —Context: http, server, location,limit_except

nginx中lua脚本输出

在nginx中嵌入lua模块,能够使得nginx服务端的开发大大地方便,尤其是在实现一些额外的统计等小功能的时候.在nginx模块中直接lua嵌入脚本文件,可以直接使用nginx中lua模块的一些函数直接返回数据.可以调用的函数如下:ngx.say(),ngx.print(),return ,ngx.exit()等等,下面介绍一下这些函数的区别: (1)ngx.say()函数是返回该函数的参数加换行的数据,例如ngx.say("hello"),则返回数据hello/r/n, (2)ng

nginx中SSI问题的研究

最近感觉挺爽的,这个项目团队没有一个专门做PHP的,我是第一个进来做PHP(当然还有前端)的,哈哈,我会设计修改出适合我们业务的PHP框架,哈哈,感觉会学到很多东西的样子,前几天在组内20几个前辈面前讲php框架,以及跟大牛们探讨适合我们的php框架,感觉表达能力太差了,知道的东西表达不清楚,还要我的导师去帮我表达,这里感谢下我的导师于洪磊(简称磊哥),磊哥简直就是我的偶像,我没见过那么有深度的程序员,技术牛B这是肯定的了,对技术外的了解超出了我的想象,磊哥看的书很多,涉猎很广泛,尤其在历史和文

nginx中使用perl模块

转载自:http://www.netingcn.com/nginx-perl.html 如果对于一个绝大部分内容是静态的网站,只有极少数的地方需要动态显示,碰巧你又了解一点perl知识,那么nginx + perl的结合就能很好解决问题.要想nginx支持perl脚本,在编译nginx时候需要如下参数: ./configure --with-http_perl_module 如果make时候出现如下类似错误: Can't locate ExtUtils/Embed.pm in @INC (@IN