🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# upstream 这个配置是写一组 被代理的服务器地址,然后配置负载均衡的算法。 写法1: ~~~ upstream mysvr { server 192.168.10.121:3333; server 192.168.10.122:3333; } server { .... location ~*^.+$ { proxy_pass http://mysvr; #请求转向mysvr定义的服务器列表 } } ~~~ 写法2: ~~~ upstream mysvr { server http://192.168.10.121:3333; server http://192.168.10.122:3333; } server { .... location ~*^.+$ { proxy_pass mysvr; #请求转向mysvr定义的服务器列表 } } ~~~ <br> <br> # 热备 加入你有2台服务器,当一台服务器发生事故时,才启用第二台服务器提供服务。服务器处理请求的顺序:AAAA故障,BBBBB... ~~~ upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333 backup; #热备 } ~~~ <br> <br> # 轮询 nginx默认就是轮询,权重默认是1,服务器处理请求的顺序为:ABABAB... ~~~ upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333; } ~~~ <br> <br> # 加权轮询 根据配置权重的大小而分发给不同服务器不同的请求。如果不设置,默认为1。服务器处理请求的顺序为:ABBABBABB... ~~~ upstream mysvr { server 127.0.0.1:7878 weight=1; server 192.168.10.121:3333 weight=2; } ~~~ <br> <br> # ip_hash nginx会让相同的客户端ip请求相同的服务器 ~~~ upstream mysvr { server 127.0.0.1:7878; server 192.168.10.121:3333; ip_hash; } ~~~ # 状态参数 * down,表示当前server暂时不参与负载均衡 * backup,预留的备份机器,当其他所有的非backup机器故障或者忙时,才会请求backup机器,因此这台机器压力最轻 * max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误 * fail_timeout,经历max_fail此失败后,暂停服务的时间,max_fails可以与fail_timeout一起使用 ~~~ upstream mysvr { server 127.0.0.1:7878 weight=2 max_fails=2 fail_timeout=2; server 192.168.10.121:3333 weight=1 max_fails=2 fail_timeout=1; } ~~~