系统相关
首页 > 系统相关> > 从零开发短视频电商 Nginx负载均衡配置总结

从零开发短视频电商 Nginx负载均衡配置总结

作者:互联网

负载均衡

nginx默认支持四种调度算法

upstream lakerService#自定义组名 {
    ip_hash; 
    server 192.168.0.1:8080 weight=1 max_fails=3 fail_timeout=15;
    server 192.168.0.1:8081 weight=1 max_fails=3 fail_timeout=15;
    server 192.168.0.1:8082 down;
    server 192.168.0.1:8032 backup;
    server x2.baidu.com;    #可以是域名   
                            #down         不参与负载均衡
                            #weight=5;    权重,越高分配越多,默认为1。  
                            #backup;      预留的备份服务器,其他所有的非backup机器挂了或者忙的时候,才会请求这个backup机器。
                            #max_fails    某台server请求允许失败的次数,默认为1。
										  超过设置次数后,在fail_timeout时间内,新请求不会分配给这机器。
                            #fail_timeout 超过失败次数后,服务暂停时间,默认为10秒。
										  某台server达到max_fails次数后,在fail_timeout时间内,nginx认为这台server不可用,不会转发请求给它。
                            #max_coons    限制分配给某台server最大的接受的连接数,超过设置数量,将不会分配给它新连接,默认为0表示不限制。
                            #根据服务器性能不同,配置适合的参数
    
    #server 106.xx.xx.xxx;        可以是ip
    #server 106.xx.xx.xxx:8080;   可以带端口号
    #server unix:/tmp/xxx;        支出socket方式
}
  • max_fails 允许请求失败的次数,默认是1,当超过最大次数时,返回proxy_next_upstream模块定义的错误。0表示禁止失败尝试,企业场景:2-3次,京东1次,蓝汛10次,根据业务需求去配置。
  • fail_timeout,在经历了max_fails次失败后,暂停服务的时间。京东是3s,蓝汛是3s,根据业务需求配置。常规业务2-3秒合理。

例:如果max_fails是5,他就检测5次,如果五次都是502.那么,他就会根据fail_timeout 的值,等待10秒,再去检测。

整体示例

http {
    # 定义了一个负载均衡池 
    upstream lakerService {
        # 最大失败次数 3 次,超过 3 次失败后,20 秒内不检测。
        server 192.168.10.24:8080 max_fails=1 fail_timeout=5s;
        server 192.168.10.24:8081 max_fails=1 fail_timeout=5s;
    }
    server {
        listen  80;
        location / {
            # 故障转移策略,当后端服务器返回如下错误时,自动负载到后端其余机器
            proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
            proxy_pass http://lakerService;
        }
    }
}

标签:负载,max,fails,server,Nginx,timeout,fail,服务器,电商
来源: https://blog.csdn.net/abu935009066/article/details/121768386