🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## upstream 1. 默认已被编译进nginx; 2. 禁用须通过--without-http_upstream_module; ## upstream语法结构 语法: ``` upstream name {...} ``` 上下文: ``` http ``` ## server 语法: ``` server address [parameters] ``` 上下文: ``` upstream ``` parameters可选值: | 可选参数 | 含义 | | --- | --- | | weight=number | 权重值,默认为1 | | max_conns=number | 上游服务器的最大并发连接数 | | fail_timeout=time | 服务器不可用的判定时间 | | max_files=number | 服务器不可用的检查次数,在fail_timeout时间范围内检查的次数,不是永远不将请求转发给它了.当确认它不可用之后就会标记 | | backup | 备份服务器,仅当其他服务器都不可用时 | | backup | 备份服务器,仅当其他服务器都不可用时 | | down | 标记服务器长期不可用,离线服务 | ## keepalive 限制每个worker子进程与上游服务器**空闲**长连接的最大数量; 语法: ``` keepalive connections; ``` 上下文: ``` upstream ``` 示例: ``` keepalive 16; ``` ## keepalive_requests 单个长连接可以处理的最多HTTP请求个数;当达到这个请求个数后,关闭这个链接,等客户端再请求的时候再创建一个新的连接; 语法: ``` keepalive_requests number; ``` 默认值: ``` keepalive_requests 100; ``` 上下文: ``` upstream ``` ## keepalive_timeout 空闲长连接的最长保持时间;每个长连接可以允许的最长时间; 语法: ``` keepalive_timeout time; ``` 默认值: ``` keepalive_timeout 60s; ``` 上下文: ``` upstream ``` ## queue(商业版才可使用) 所有上游服务器不可用时,请求会被放到队列中等待; 语法: ``` queue number [timeout=time]; ``` 上下文: ``` upstream ``` 示例: ``` queue 100 timeout=30s; //定义100个连接放入内存中,可以放置30s秒 ``` ## 示例 ``` upstream back_end{ //back_end是名称 server 127.0.0.1:8080 weight=3 max_conns=1000 fail_timeout=10s max_fails=2; keepalive 32; keepalive_requests 50; keepalive_timeout 30s; } ```