"High Availability" (High Availability) usually describes a system that is specially designed to reduce downtime while maintaining a high degree of availability of its services. Nginx can achieve high availability with Keepalived and realize automatic switching of dual-machine hot backup. This kind of operation is relatively common in today's cluster systems. In addition, hot backup can be achieved through keepalived and redis, and it can also be implemented with mysql. Yes, there are many similar cases.
Keepalived is a free and open source software written in C that is similar to the layer3, 4 & 7 switching mechanism. It has what we usually call layer 3, layer 4 and Functionality of Layer 7 switches. It mainly provides loadbalancing (load balancing) and high-availability (high availability) functions. The implementation of load balancing requires relying on the Linux virtual service kernel module (ipvs), and high availability is to achieve faults between multiple machines through the VRRP protocol. Transfer Services.
#The above picture is the functional architecture of Keepalived, which is roughly divided into two layers: user space and kernel space.
Kernel space: Mainly includes two parts: IPVS (IP virtual server, used to realize load balancing of network services) and NETLINK (providing advanced routing and other related network functions).
Userspace:
WatchDog: Status of load monitoring checkers and VRRP processes
VRRP Stack: FailOver switching between load balancers , if only one load equalizer is used, VRRP is not necessary.
Checkers: Responsible for health checking of the real server, which is the main function of keepalived. In other words, there is no need for VRRP Stack, but health checking must be present.
IPVS wrapper: The user sends the set rules to the kernel ipvs code
Netlink Reflector: used to set the vip address of vrrp, etc.
All functions of Keepalived are implemented by configuring the keepalived.conf file.
For more Nginx related technical articles, please visit the Nginx usage tutorial column to learn!
The above is the detailed content of What does nginx high availability mean?. For more information, please follow other related articles on the PHP Chinese website!