2020-03-31 记一次 nginx 负载均衡和自动容灾(故障转移)配置
参考:https://www.jianshu.com/p/6406c6a74955
nginx 是一个性能非常优秀的反向代理服务器,可以非常方便的进行静态服务、反向代理、负载均衡等的配置。
在之前的博客centos7 下 nginx 的安装与配置中已经讲过 nginx 的基本配置,但这只是用到了 nginx 的一部分功能。对于多台服务器的集群而言,nginx 的负载均衡和自动容灾(故障转移)功能才是更加重要的,可以有效的提高服务的可靠性。可以说,如果负载均衡不做自动容灾(故障转移)的话,那就等于没做。在实际服务器集群中,总会有几台故障机或维护机,生产环境的要求就决定了必须要有自动容灾(故障转移)。
下面就来简要谈谈怎么配置。
负载均衡
负载均衡部分是非常简单的。
1 | upstream backend_server { |
重点就在于 upstream 部分。此处需要先定义一个 upstream,然后在下方引用即可。
分配方式在 upstream 块中定义即可。
nginx 的 upstream 目前支持 5 种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
2、weight
指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况。
3、ip_hash
每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
upstream bakend {
ip_hash;
server 192.168.203.14:88;
server 192.168.203.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream bakend {
fair;
server 192.168.203.14:88;
server 192.168.203.15:80;
}
5、url_hash(第三方)
按访问 url 的 hash 结果来分配请求,使每个 url 定向到同一个后端服务器,后端服务器为缓存时比较有效。
自动容灾(故障转移)
下面就是本文的重头戏,关于 nginx 的自动容灾(故障转移)部分。
所谓自动容灾(故障转移),就是在后台服务器中出现故障时,能够自动转移到健康的服务器上,来维持整个服务的稳定。
配置也是比较简单的,在负载均衡的基础上添加一些配置即可。重点在于两段加了注释的内容,其余的都是装饰。
1 | #轮询服务器,weight为服务器权重,与访问频率成正比,max_fails最大超时次数,fail_timeout服务器代理监听超时时间 |
在网上搜 nginx 自动容灾(故障转移)的时候有些文章没有讲到重点,本文稍微提取了下重点来讲述,希望对大家有所帮助
本文作者:草梅友仁
本文地址: https://blog.cmyr.ltd/archives/57d5eb4d.html
版权声明:转载请注明出处!