Nginx初探(5)——Nginx的高可用
回顾
通过前面四章的学习,学会了Nginx的安装、配置虚拟主机、反向代理、负载均衡,这基本上就是Nginx的大概内容了。
我们知道,nginx其实是一个代理,客户端通过nginx才能够访问到后面的应用服务器(tomcat等)。
那么如果nginx宕机,即使后面的应用服务器没有出现故障,客户端也不能正常访问了,因此保证nginx的高可用十分重要。
keepalived
既然nginx如此重要,因此我们可以准备两台nginx服务器,组成nginx主/从服务器。我们使用keepalived
来帮助实现主/从服务器的切换。
keepalived
有一个对外提供的VIP(Virtual IP Address)
,它捆绑哪个IP地址就会使用哪一台nginx服务器。
- 当主服务器没有宕机时,VIP指向主服务器,从服务器会不停给主服务器发送
心跳包
,主服务器会回复从服务器心跳包。 - 当从服务器没有收到主服务器返回的心跳包时,
keepalived
就认为主服务器宕机了,它会将VIP切换到从服务器,由从服务器提供服务。 - 当运维人员修复好主服务器后,
keepalived
会将VIP切换回主服务器,从服务器不再处理请求,只给主服务器发送心跳包。
关于keepalived的配置暂时省略,如果实际使用到会补充。
解决超大并发
我们知道,nginx能够解决5w的并发,如果网站的并发已经超过了nginx的极限,我们有两种解决办法:
(1)F5负载均衡器,硬件实现,价格较贵
(2)LVS,免费开源,软件实现,大约是F5负载均衡器60%的性能