Home > Article > Operation and Maintenance > Detailed introduction to the disaster recovery backup configuration method of Nginx reverse proxy server
Detailed explanation of disaster recovery backup configuration method of Nginx reverse proxy server
Overview
In the environment of building web applications, high availability and disaster recovery backup are crucial. As a high-performance reverse proxy server, Nginx has powerful disaster recovery backup configuration functions, which can ensure that the system continues to be available in the event of server failure. This article will introduce the disaster recovery backup configuration method of Nginx reverse proxy server, and explain in detail how to use the backup server to ensure the high availability of the system.
Installing Nginx
First of all, you need to make sure that Nginx has been installed on your server. If you have not installed Nginx, you can install it with the following command:
$ sudo apt-get update $ sudo apt-get install nginx
Configure the main server
Open the main configuration file of Nginx, usually /etc/nginx/nginx.conf , make the following modifications:
http { upstream backend { server primary_server:80; server backup_server:80 backup; } server { listen 80; server_name your_domain.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
In the above configuration, we use the upstream directive to define a cluster of reverse proxy servers named backend. Among them, primary_server is the address and port of the main server, backup_server is the address and port of the backup server, and the backup parameter is used to represent the backup server. By configuring location /, the forwarding address of the request is specified as http://backend.
Configuring the backup server
The configuration file is also /etc/nginx/nginx.conf. Still open the main configuration file of nginx and modify it as follows:
http { upstream backend { server primary_server:80 backup; server backup_server:80; } server { listen 80; server_name your_domain.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
In In the backup server, we swap the positions of primary_server and backup_server, so that when the primary server goes down, the request will be forwarded to the backup server.
Configuring health check
In order to improve the availability of the system, we can configure Nginx to perform health checks so that it can switch to the backup server in time when the server is unavailable. Open the main configuration file of Nginx and add the following configuration:
http { upstream backend { server primary_server:80 backup; server backup_server:80; # 启用健康检查 health_check; # 检查间隔时间 check_interval 5s; # 失败次数阈值 check_failure_threshold 3; # 检查的超时时间 check_timeout 2s; } server { listen 80; server_name your_domain.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } }
In the above configuration, we used the health_check directive to enable the health check function, and set the check interval, failure threshold and timeout. When the number of consecutive failures of the main server reaches the threshold, Nginx will switch to the backup server.
Restart Nginx service
After completing the above configuration, restart the Nginx service through the following command to make the configuration take effect:
$ sudo service nginx restart
Summary
Nginx reverse proxy server provides powerful disaster recovery backup configuration functions so that the system can still be continuously available when the server fails. High availability of the system can be ensured by configuring primary servers and backup servers, health checks, and other operations. I hope the information provided in this article is helpful to you.
The above is the detailed content of Detailed introduction to the disaster recovery backup configuration method of Nginx reverse proxy server. For more information, please follow other related articles on the PHP Chinese website!