高可用的实现(Keepalived + 虚 IP)
为了避免服务单点,也为了负载均衡,我们会加一层 Nginx 层。这个 Nginx 层要有多于一台机器,不然它自身也成为一个单点。
最初加 Nginx 层会变成这样:
schaepher.com
+
|
+-------+
|
v
+---+---+ +-------+
| | | |
| Nginx | | Nginx |
| | | |
+--+----+ +---+---+
| |
+---------+---+-------------+-+-----------+
| | | |
v v v v
+---+----+ +---+----+ +---+----+ +---+----+
| | | | | | | |
| Real | | Real | | Real | | Real |
| Server | | Server | | Server | | Server |
| | | | | | | |
+--------+ +--------+ +--------+ +--------+
如果有一台 Real Server 发生故障,则 Nginx 就不会转发到故障的机器,保证服务正常进行。