nginx负载均衡宕机配置精编版

上传人:仙*** 文档编号:68449444 上传时间:2022-04-02 格式:DOC 页数:9 大小:77.50KB
收藏 版权申诉 举报 下载
nginx负载均衡宕机配置精编版_第1页
第1页 / 共9页
nginx负载均衡宕机配置精编版_第2页
第2页 / 共9页
nginx负载均衡宕机配置精编版_第3页
第3页 / 共9页
资源描述:

《nginx负载均衡宕机配置精编版》由会员分享,可在线阅读,更多相关《nginx负载均衡宕机配置精编版(9页珍藏版)》请在装配图网上搜索。

1、ngi nx负载均衡宕机配1 Jt I集团企业公司编码:(LL369&KKI 1269-TM2483-LUI12689-ITT289-(1) 结论详细描述nginx 记录失效节点的 6种状态(timeout connectrefuse500、502、503、504,后四项 5XX 需要配置 proxy_next_upstream 中的状态才可以生效)、失效节点的触发条 件和节点的檢复条件、所 有节点失效后 nginx 会进行恢复并进行重 新监听。( 2)Nginx? 负载均衡方式介绍Nginx 的负载均衡方式一共有 4 种:(轮询模式) 、ip_hash 、 fair 、 url_hasho(

2、 3)Ngxin 负载均衡和相关反向代理配置内容Nginx 负载均衡和与容错相关的反向代理的配置。( 4)获取后端流程后端 server 的自动容错流程图。( 5) 测试环境和测试结果针对儿种错误方式进行自动容错测试。2. 结论( 1)nginx? 判断节点失效状态Nginx 默认判断失败节点状态以 connectrefuse 和 timeout 状态为 准, 不以HTTP错误状态进行判断失败,因为HTTP只要能返回状态说明该节点还可以正常连接,所以 nginx 判断其还是存活状态;除非添加了 proxy_next_upstreamJH 令设置对 404 、502 、503 、 504 、 5

3、00 和 timeout等错滾进行強到备机处理,在 next_upstream 过程中,会对 fails 进行 累 加,如果备用机处理还是错误则着接返回错误信息(但 404 不进行记 录到 错误数,如果不配置错误状态也不对其进行错误状态记录),综 述, nginx 记录错误数量只记录 timeout connectrefuse 502、500、 503 、504 这 6种状态, timeout 和 connectrefuse 是永远被记录错误状 态,而 502 、500 、 503 、504 只有在配置 proxy_next_upstream 后 nginx 才会记录这 4 种 HTTP 错误

4、到 fails 中,当 fa 订 s 大于等于 max_fails 时,则该节点失效;(2)nginx? 处理节点失效和恢复的触发条件nginx 可以通过设置 max_fails (最大尝试失败次数)和 fail_timeout (失效时间,在到达最大尝试失败次数后,在 fail_timeout 的时间范围内 节点被置为失效, 除非所有节点都失效,否 则该时间内, 节点不进行恢复) 对节点失败的尝试次数和失效时间进行 设置,当超过最大尝试次数或失效 时间未超过配置失效时间,则 nginx 会对节点状会置为失效状态, nginx 不 对该后端进行连接,直到超过失效 时间或者所有节点都失效后,该节

5、点重 新置为有效,重新探测;(3)所有节点失效后 nginx 将重新恢复所有节点进行探测 如果探测所有节点均失效,备机也为失效时,那么 nginx 会对所有节 点恢复为有效,重新尝试探测有效节点,如果探测到有效节点则返回正 确节 点内容,如果还是全部错误,那么继续探测下去,当没有正确信息时,节点失效时默认返回状态为 502, 但是下次访问节点时会继续探测正 确节点, 直到找到正确的为止。3. nginx 负载均衡Nginx 的负载均衡方式一共有 4 种: rr (轮询模式)、 ip_hash 、fair url_hash ;Nginx 自带的 2 种负载均衡为 rr 和 ip_hash, fa

6、ir 和 url_hash 为第 三 方的插件,nginx在不配置负载均衡的羅式下,默认采用r ;负载均衡模式。RR 负载均衡模式: 每个请求按时间顺序逐一分配到不同的后端服务器,如果超过了最大 失 败次数后 (max_fails,默认 1 ), 在失效时间内 ( fail_timeout,默认 10 秒),该节点失效权重变为 0, 超过失效时间后,则恢复正常,或者全 部节点都为 down 后,那么将所有节点都恢复为有效继续探测,一般来说 rr 可以根据权 重来进行均匀分配。Ip_hash 负载均衡模式:每个请求按访问 ip 的 hash 结果分配, 这样每个访客固定访问一个后 端 服务器,可

7、以解决 session 的问题,但是 ip_hash 会造成负载不均, 有的 服务请求接受多,有的服务请求接受少,用以不建议采用 ip_hash 模式, session 共享问题可用后端服务的 session 共亨代替 nginx 的 ip_hasho Fair (第三方)负载均衡模式:按后端服务器的响应时间来分配请求,响应时间短的优先分配。url_hash (第三方)负载均衡模式:Wip_hash 算法类似,是对每个请求按 1 的 hash 结果分配,使每 个 URL 定向到一个同?一个后端服务器,但是也会造成分配不均的问题,这种模式后端服务器为缓存时比较好。4. Nginx?负载均衡配置N

8、ginx 的负载均衡采用的是 upstream 模块 其中默认的采用的负载均衡模式是轮询模式 rr (round_robin), 具体配置 如下:1)指令:ip_hash语法: ip_hash?默认值: none?使用字段: upstream?这个指令将基于客户端连接的 IP 地址来分发请求。 哈希的关键字是客户端的 C 类网络地址,这个功能将保证这个客户端请 求 总是被转发到一台服务器上,但是如果这台服务器不可用,那么请求 将转 发到另外的服务器上,这将保证某个客户端有很大概率总是连接到 一台服 务器。无法将权重 (weight )与 ip.hash 联合使用来分发连接。如果有某台服 务器

9、不可用,你必须标记其另“down”,如下例:upstreambackend ip_hash; 一server语法: servernameparameters 默认值: none?使用字段: upstream? 指定后端服务器的名称和一些参数,可以使用域名, IP, 端口,或者 unixsocketo 如果指定为域名,则首先将其解析为 IP 。weight 二 NUMBER-设置服务器权重,默认为 1 max_fails 二 NUMBER-在一定时间内(这个时间在 fail_timeout 否可用时产生的最多失败请求数,默认为 这些错误在 proxy_next_upstream 或 误不会使 m

10、ax_fails 增加)中定义。参数中设置)检查这个服务器 是1, 将其设置为 0 可以关闭检 查, fastcgi_next_upstreain(404 错fail_timeoutTIME-在这个时间内产生了 max_fa 订 s 所设置大小的失败尝试连接请求后这个 服 务器可能不可用,同样它指定了服务器不可用的时间(在下一次尝试 连接 请求发起之前),默认为 10 秒, fail_timeout与前端响应时间没有 直接关系,不过可以使用 proxy_connect_timeout 和 proxy_read_t imeout來控制。down-标记服务器处于离线状态,通常和 ip_hash 起

11、使用。backup- ( 0. 6. 7 或更高)如果所有的非备份服务器都宕机或繁忙,则使用 本服务器(无法和 ip_hash 指令搭配使用)。示例配置upstreambackendserverunix:/tmp/backend3;注意:如果你只使用一台上游服务器, nginx 将设置一个内置变量为 1, 即 max_fails 和 fail_timeout 参数不会被处理。结果:如果 nginx 不能 连接 至 J 丄游,请求将丟失。解决:使用多台上游服务器。upstream语法: upstreamname ? 默认值: none? 使用字段: http?这个字段设置一群服务器,可以将这个字

12、段放在 proxy_pass 和 fastcgi_pass 指令中作为一个单独的实体,它们可以可以是监听不同端 口 的服务器,并且也可以是同时监听 TCP 和 Unixsocket 的服务器。服务器可以指定不同的权重,默认为 1 示例配置upstreambackend serverweight 二 5;s ervermax_fails 二 3fail_t imeout=30s; serverunix:/tmp/backend3;请求将按照轮询的方式分发到后端服务器,但同时也会考虑权重。2)变量Iog_module中的变量来记录志:log_formattiming $remote_addr-$r

13、emote_user- $time_local$request upstream_response_time$upstre8in_response_time msec$msecrequest_time$request_time,;1og_formatup_head $remote_addr-$remote_user _$tinie_local $request,upstream_http_content_type$upstream_http_content_type;$upstream_addr前端服务嗨处理请求的服务器地址$upstream_cache_statusMISS?EXPIRED-

14、expiredo 请求被传送到后端。UPDATING-expiredo 由于 proxy/fastcgi_cache_use_stale正在更新,将使用旧的应答。一一一STALE-expiredo 由于 proxy/fastcgi_cache_use_stale,后端将得到过 期的应答。_HITJupstreamFatus前端服务廳的响应状态。$upstream_response_time前端服务班的应答时向,精确到毫秒,不同的应答以逗号和冒号分开。$upstream_h11 p_$HEADER随意的 HTTP 协议头,如: $upstream_http_host$upstream_http_

15、host3) Proxy 指令:proxy_next_upstream语法 : proxy_next_upstreamerror timeout invalid_header http_500 http_502 http_503 http_5 04 http_404 j off默认值: proxy_next_ups treamerror timeout? 使用字段: http, server, location? 确定在何种情况下请求将转发到下一个服务器: error- 在连接到一个服务器,发送一个请求,或者读取应答时发生错 误。 timeout- 在连接到服务器,转发请求或考读取应答时发生超

16、时。invalid_header- 服务器返回空的或者错误的应答。 http_500-服务器返回 500代码。http_502-服务器返 |H! 502代码。http_503-服务器返 In 503代码。http_504-服务器返凹 504代码。http_404-服务器返回 404代码。off- 禁止转发请求到下一台服务器。 转发请求只发生在没有数据传递到客户端的过程中。 其中记录到 nginx 后端错误数量的有 500 、502 、503 、504 、timeout, 404 不记录错误。proxy_connect_timeout语法: proxy_connect_timeouttimeou

17、t_in_seconds? 默认值: proxy_connect_timeout60s?使用字段: http, server, location? 指定一个连接到代理服务器的超时时间,单位为秒,需要注意的是这个 时 间最好不要超过 75 秒。这个时间并不是指服务器传回页面的时间 (这个时间由 proxy_read_timeout 声明)。如果你的前端代理服务器是正常运行的, 但是迪到一些状况(例 如没有足够的线程去处理请求,请求将被放在一个连接池中延迟处理),那么这个声明无助于服务器去建立连接。可以通过指定时问单位以免引起混乱,支持的时问单位有”S”(秒),“mS,(毫秒),“y” 奔),“M

18、 (月) ,“w”(周),“ d”(日),“h”(小时),和? “m”(分钟)。这个值不能大于 597 小时。proxy_read_t imeout语法: proxy_read_timeouttime? 默认值: proxy_read_timeout60S? 使用字段 : http, Server, location? 决定读取后端服务器应答的超时时间,单位为秒,它决定 nginx 将等待多状态久时间来取得一个请求的应答。超时时间是指完成了两次握手后并且 为 established 的超时时间。相对于 proxy_connect_timeout, 这个时间可以扑捉到一台将你的连接放 入 连接池

19、延迟处理并且没有数据传送的服务器,注意不要将此值设置太 低, 某些情况下代理服务器将花很长的时间来获得页面应答(例如如当接收一个需要很多计算的报表时),当然你可以在不同的 location 里面设置不同 的值。可以通过指定时问单位以免引起混乱,支持的时问单位有”S”(秒),“ms(毫秒),“y”(年),“ M (月),“W”(周 ),“d”(日),“ h”(小时),和? “m (分钟)。这个值不能大于 597 小时。proxy_send_t imeout语法: proxy_send_timeoutseconds? 默认值: proxy_send_timeout60s? 使用字段: http,

20、server, location? 设置代理服务器转发请求的超时时间,单位为秒,同样指完成两次握手 后 的时问,如果超过这个时问代理服务器没有数据转发到被代理服务器ginx将关闭连接。可以通过指定时问单位以免引起混乱,支持的时问单位有”s”(秒),“m (毫秒),“y”(年),“ M”(月),“ W (周),“ d”(El), “h” (小时),和 ? “m”(分钟)。这个值不能大于 597 小时。5. 获取后端流程GET_RR_PEER!过RR算法获取后端流程K:是判亦peer是否宕机和判断失效状态算法FAIL: 尝试次数用尽有,跳转到失败流程,如果有备机,备机再尝试监 听, 如果监听失败则

21、返回 NGX_BUSY, 成功则返回当前状态。6. 测试环境操作系统: centosb. 6Cpu:16 核 内存: 32gWeb?服务器:nginxWeb?应用服务器:tomcat (2台)7. 测试结果设置 tomcatl 超时时间,造成超时状态(总有一台 server 为有效状态):Tomcatl 的 connectionTimeout? 设置为- 1, 永远超时, nginx 设置 tomcatl 和口 tomcat2 权重为 10, tomcatl 的 max_fails 为 10, fa 订_timeout 二 120 ;在连接 tomcatl 的 10 次后,返回给 nginx

22、为 10 次超时, ngxin 判 断 tomcat 1 为失效, 然后将 tomcatl 超时时间恢复为 1000 重新启动 tomcatl, 在这段时间内 nginx 判断 tomcatl 还是失效状 态,所以在 2 分钟后, nginx 继续监听到 tomcatl 正常后,那么 nginx 会 将 tomcatl 判断为有效,将连 接继续均匀分配到 2 个 tomcat 上。 设置 tomcatl 连接数量,造成超时状态 (总有一台 server 为有效状 态):Tomcatl 的线程数量设置为 1, nginx 设置 tomcatl 和 tomcat2 权重为 10, tomcatl

23、的 max_fails 为 10, fail_timeout=120 : 在连接 tomcatl 超过 线程接受数量屁 tomcat 1 会返回购时状态,在返回给 nginxl0 次超 时状态 后, ngxin 判断 tomcatl 为失效,然后将 tomcat 线程数量恢复为 700, 重新 启动 tomcatl, 在这段时间内 nginx 判断 tomcatl 还是失效状 态,超过 2 分 钟失效后, nginx 继续监听到 tomcatl 正常后,那么 nginx 会将 tomcatl 判 断为有效,将连接继续均匀分配到 2 个 tomcat 上。 设置 tomcat 1 关闭, 造成拒

24、绝状态(总有一台 server 为有效状态):Tomcatl 为关闭, nginx 设置 tomcatl 和 tomcat2 权重为 10, tomcatl 的 max_fails 为 10, fa 订 _timeout=120 : 在连接 tomcat 1 的 10 次后, nginx 收到 tomcatl 返回 connectrefuse 状态, ngxin 判断 tomcatl 为 失 效,然后重新启动 tomcatl, 在这段时间内 nginx 判断 tomcatl 还是失效 状 态,超过 2 分钟失效后, nginx 继续监听到 tomcat 1 正常后,那么 nginx 会将 to

25、mcatl 判断为有效,将连接继续均匀分配到 2 个 tomcat o 设置 tomcatl 在 nginxl 标记失效, tomcatl 恢复正常,在 nginx 失效范 围 内,将全部服务变为失效,然后重启:Tomcatl 为关闭, nginx 设置 tomcatl 和 tomcat2 权重为 10, tomcatl 的 max_fails 为 10, fail_timeout=120;在连接 tomcatl 的 10 次后, nginx收到 tomcatl 返回 connectrefuse 状态, ngxin 判断 tomcatl 为失 效, 然后重新启动 tomcatl, 在这段时间内

26、 nginx 判断 tomcatl 还是失效 状态, 然后将 tomcat2 关闭,然后重启 tomcat2, 由于所有服务均失效, 所以 nginx? 将所有服务重新置为有效进行监听, 然后将 2 连接均匀分布 到了 tomcatl 和 to me at 2上。http 错误状态, nginx 是否记录失效:nginx 设置 tomcatl 和 tomcat2 权重为 10, tomcatl 的 max_faiIs 为 10, fail_timeout=120: 配置 proxy_next_upstream500 404 、502 503 、504 、timeout 后,当 HTTP 状态为 500 、502 、503 、504 ( timeout 和 refuse 默认是记录失效的)时, nginx 会判断该次请求为失败记录失败状 态,其他 所有 HTTP 均不记录失败

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!