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 # 期望响应报⽂文的主体部分应该有的内
容
Nginx中ngx_http_upstream_module模块的更多相关文章
- 20、nginx之ngx_http_upstream_module模块
nginx的ngx_http_upstream_module模块是用于nginx反向代理的,默认在安装nginx时已经被安装,ngx_http_upstream_module模块 的内容应放于 ngi ...
- nginx中Geoip_module模块的使用
nginx中Geoip_module模块的使用 .安装模块,nginx也是通过yum安装 yum install nginx-module-geoip -y # 可以看到模块的链接库文件 [root@ ...
- Nginx中ngx_http_proxy_module模块
该模块允许将请求传递给另⼀一台服务器器指令:1 ,proxy_pass设置代理理服务器器的协议和地址以及应映射位置的可选 URI .作为协议,可以指定“ http 或 https .可以将地址指定为域 ...
- nginx中ngx_http_core_module模块
http核⼼心模块指令:套接字相关的配置3.1 server{ }设置虚拟服务器器的配置Syntax: server { ... }Default: —Context: httpserver {lis ...
- Nginx中location模块的详细配置(含示例)
题记 此前在配置Nginx location模块的时候玩出了一些bug,折腾了一段时间.后来网上也查阅了相关的资料,看着也比较混乱.周末有空想着好好整理一下location模块的配置,结合自己的亲手实 ...
- nginx中ngx_http_ssl_module模块
此模块为HTTPS提供必要的⽀支持worker_processes auto;http {...server {listen 443 ssl;keepalive_timeout 70;ssl_prot ...
- nginx中ngx_http_gzip_module模块
⽤用gzip⽅方法压缩响应数据,节约带宽gzip on;gzip_min_length 1000;gzip_proxied expired no-cache no-store private auth ...
- nginx中的模块分类及常见核心模块有哪些
1.模块分类 核心模块:是 Nginx 服务器正常运行必不可少的模块,提供错误日志记录 .配置文件解析 .事件驱动机制 .进程管理等核心功能 标准HTTP模块:提供 HTTP 协议解析相关的功能,比如 ...
- Nginx中ngx_http_log_module模块
指定⽇日志格式记录请求指令: access_log设置缓冲⽇日志写⼊入的路路径,格式和配置Syntax: access_log path [format[buffer=size] [gzip[=lev ...
随机推荐
- iOS开发系列之app的一天
本文主要讲述我对 iOS 开发的一些理解,希望能通过 app 从启动到退出,将一些的知识整合起来,形成一条知识链,目前涉及到的知识点有 runloop.runtime.文件存储.界面布局.离线推送.内 ...
- poj1873(二进制枚举+求凸包周长)
题目链接:https://vjudge.net/problem/POJ-1873 题意:n个点(2<=n<=15),给出n个点的坐标(x,y).价值v.做篱笆时的长度l,求选择哪些点来做篱 ...
- oracle导入.dmp脚本
一.更改数据库管理员sys/system密码 1.运行到C盘根目录 2.输入:SET ORACLE_SID = 你的SID名称 3.输入:sqlplus /nolog 4.输入:connect /as ...
- eclipse3.62开发第一个java程序HelloWorld
[学习笔记] 用eclipse3.62开发第一个java程序: 使用eclipse之前们需要先配置一下jdk.window/preference/java/installed JREs,详细请见视频. ...
- C++实现16进制字符串转换成int整形值
开发中经常需要把16进制字符串转换成整形,写了个个代码供大家参考下: #include <stdio.h> #include <string.h> //字符转换成整形 int ...
- linux-centos7安装Oracle11gr2数据库(在图形界面下)
修改操作系统核心参数 在Root用户下执行以下步骤: 1)修改用户的SHELL的限制,修改/etc/security/limits.conf文件 oracle soft nproc 2047 orac ...
- java获取端口号,不用request
Integer port = null; MBeanServer mBeanServer = null; List<MBeanServer> mBeanServers = MBeanSer ...
- Android监听EditText输入字符串,删除指定的字符
alert_ed = (EditText) a.findViewById(R.id.alert_ed_queue_num); alert_ed.addTextChangedListener(mText ...
- ubuntu14.04
14.10显卡驱动有问题 1.恢复启动引导菜单:启动盘 -> 运行到分区之前,不要分区 -> shift+f10 进入dos -> bootsec /fixmbr ->关闭重启 ...
- 关于MQ的几件小事(六)消息积压在消息队列里怎么办
1.大量消息在mq里积压了几个小时了还没解决 场景:几千万条数据在MQ里积压了七八个小时,从下午4点多,积压到了晚上很晚,10点多,11点多.线上故障了,这个时候要不然就是修复consumer的问题, ...