Java服务器端编程JVM · Java虚拟机原理 · JVM上语言·框架· 生态系统RxJava

Nginx使用场景之负载均衡和故障转移(主从热备)

2021-03-23  本文已影响0人  迦叶_金色的人生_荣耀而又辉煌

上一篇 <<<Nginx使用场景之反向代理
下一篇 >>>Nginx使用场景之跨域解决


负载均衡 通过对集群的节点实现负载均衡,减少单台服务器压力,实现故障转移(重试机制和幂等问题)、健康监测(tcp、http、心跳监测)等。

负载均衡策略

负载均衡、故障转移、失败重试、容错、健康检查等
1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、IP绑定 ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
4、fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配。
5、url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

负载均衡示例

###定义上游服务器(需要被nginx真实代理访问的服务器) 
    upstream  backServer{
           #a、权重配置
        server 127.0.0.1:9091 weight=1;
        server 127.0.0.1:9092 weight=2;
           #b、iphash
        server 127.0.0.1:9091;
        server 127.0.0.1:9092;
        ip_hash;
        
    }
    server {
        listen       8888;
        server_name  localhost; 
        location / {
        #负载均衡分流
        proxy_pass   http://backServer;
        # 配置超时时间才可以自动做故障转移
        ###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
            proxy_connect_timeout 1s;
            ###nginx发送给上游服务器(真实访问的服务器)超时时间
            proxy_send_timeout 1s;
            ### nginx接受上游服务器(真实访问的服务器)超时时间
            proxy_read_timeout 1s;
            index  index.html index.htm;
        }
    }

主从服务

upstream  backServer{ 
        server 127.0.0.1:9091 ;
#加上backup的时候,指明是从服务器,一旦主服务器挂了之后,就会启用从服务器,主服务器恢复时调用主服务器
        server 127.0.0.1:9092 BACKUP;
    }

推荐阅读:
<<<DNS域名解析过程
<<<初识Nginx与负载均衡
<<<Nginx使用场景之静态服务器
<<<Nginx使用场景之虚拟主机(动静分离)
<<<Nginx使用场景之反向代理
<<<Nginx使用场景之跨域解决
<<<Nginx使用场景之资源压缩
<<<Nginx使用场景之数据缓存
<<<前后端分离场景通过Nginx调试本地后端接口
<<<Nginx Location指令详解
<<<Nginx全局变量
<<<Nginx导致图片下载失败的原因分析
<<<Nginx+Consul+upSync实现动态负载均衡
<<<Nginx+Lvs+keepAlived实现高可用
<<<Linux环境安装Nginx
<<<Linux环境安装keepAlived
<<<Keepalived虚拟vip功能
<<<Nginx安全防护汇总(转)

上一篇下一篇

猜你喜欢

热点阅读