前言
本文搭建LVS+Keepalived+Nignx高可用,搭建之前,先看下以下几种方案架设示意图的演进。
方案一
起初是一个Nginx服务器,但是当Nginx挂掉后,用户就直接访问不了网站,进而演进第二种方案。
方案二
这个方案通过Keepalived解决了Nginx主节点挂掉后,从节点的Nginx会启用,实现了双机主备,这样虽然解决了第一种方案的弊端,但是高迸发场景下,一个Nginx承受不住,无论有多少从节点,还是会挂掉,从而演进第三种方案。
方案三
通过LVS+Keepalived+Nginx,搭建了Nginx集群,对于LVS使用DR模式,请求转发响应不通过LVS,直接通过Nginx响应给用户,这样LVS负载就更高了,从而提高性能,下面以方案三搭建LVS+Keepalived+Nginx高可用
概念
一.LVS
- 什么是LVS?
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。在linux内存2.6中,它已经成为内核的一部分,在此之前的内核版本则需要重新编译内核。
- 宗旨
使用集群技术和Linux操作系统实现一个高性能、高可用的服务器. 很好的可伸缩性(Scalability) 很好的可靠性(Reliability) 很好的可管理性(Manageability)
- 特点
可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。
二.Keepalived
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
搭建
一.准备
准备4台虚拟机(CentOS 7),用于测试使用
主机 | IP | 作用 |
---|---|---|
主机1 | 192.168.232.130 | Nginx1 |
主机2 | 192.168.232.131 | Nginx2 |
主机3 | 192.168.232.132 | Keepalived Master |
主机4 | 192.168.232.133 | Keepalived Backup |
无 | 192.168.232.150 | 虚拟IP(VIP) |
二.软件安装
在192.168.232.130和192.168.232.131主