前言
在项目中为了提高并发,一般会采用集群部署,集群部署之后前端就需要一个总的代理,简单的架构图如下
由于Nginx的性能很高,一般中小型公司的流量使用单节点的Nginx,后面挂服务集群这种简单的架构都能扛得住。
当然也可以部署多个Nginx,每个Nginx使用一个公网IP,然后使用DNS轮询机制来做负载均衡,但这样会造成公网IP的浪费,且DNS的实时性不高。或者可以采用Nginx集群前面再挂一个统一的入口LVS。
不管你是使用统一的入口LVS还是采用Nginx,为了避免公网IP的浪费,你始终需要对外提供一个统一的入口,所以很多中小公司都会采用单节点的nginx来作为外网的统一入口,但很明显这样会存在单节点故障问题,那么就需要一套机制来保证系统的正常访问。
其主要思路是
使用主备Nginx,当主Nginx出现问题时,备Nginx能立马接替主Nginx,继续对外提供服务。这整套的恢复流程是自动化的,不需要人工参与的。
而keepalive就是实现这个自动化的一个工具
Nginx+Keepalive架构和思路
Nginx+Keepalive之后主备的架构图