Nginx反向代理容灾备份(手把手教你搭建高可用Web服务)

简介: 本文介绍如何通过Nginx反向代理实现容灾备份与高可用架构。利用upstream模块配置主备服务器,结合健康检查与自动故障转移,确保主服务宕机时无缝切换至备用服务器。图文详解参数设置、配置步骤及测试方法,并提供Keepalived、HTTPS等进阶优化建议,助小白快速搭建稳定可靠的Web系统。

在现代Web应用架构中,Nginx反向代理不仅用于提升性能和安全性,更是实现容灾备份高可用架构的关键组件。本文将用通俗易懂的方式,带领小白用户一步步配置Nginx,实现当主服务器宕机时自动切换到备用服务器,保障网站持续在线。

什么是反向代理与容灾备份?

反向代理是指客户端请求先发送到代理服务器(如Nginx),再由代理服务器将请求转发给后端真实服务器,并将响应返回给客户端。这样可以隐藏后端服务器的真实IP,提高安全性。

容灾备份则是指当主服务器出现故障(如断电、网络中断、程序崩溃等)时,系统能自动切换到备用服务器继续提供服务,避免业务中断。

准备工作

你需要准备以下内容:

  • 一台安装了 Nginx 的服务器(作为反向代理服务器)
  • 至少两台后端 Web 服务器(例如运行 Apache 或 Node.js 的服务器)
  • 确保所有服务器之间网络互通

配置 Nginx 实现容灾备份

Nginx 通过upstream模块实现后端服务器的负载均衡和健康检查。我们可以配置多个后端服务器,并设置故障转移策略。

编辑 Nginx 配置文件(通常位于/etc/nginx/nginx.conf/etc/nginx/sites-available/default),添加如下内容:

http {    upstream backend_servers {        server 192.168.1.10:80 weight=3 max_fails=2 fail_timeout=30s;        server 192.168.1.11:80 weight=1 backup;    }    server {        listen 80;        server_name your-domain.com;        location / {            proxy_pass http://backend_servers;            proxy_set_header Host $host;            proxy_set_header X-Real-IP $remote_addr;            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        }    }}

参数说明:

  • weight:权重,数值越大,接收请求越多。主服务器设为3,备用设为1(或不设)。
  • max_fails=2:允许连续失败2次。
  • fail_timeout=30s:30秒内失败2次,则认为该服务器不可用。
  • backup:标记为备用服务器,只有当非 backup 服务器全部宕机时才会启用。

测试容灾效果

1. 启动 Nginx:sudo nginx -t && sudo systemctl reload nginx

2. 访问你的域名,正常应由主服务器(192.168.1.10)响应。

3. 手动关闭主服务器上的 Web 服务(如systemctl stop apache2)。

4. 再次访问网站,如果配置正确,Nginx 会自动将请求转发到备用服务器(192.168.1.11),用户无感知切换。

进阶建议

为了进一步提升高可用架构的可靠性,你可以:

  • 使用 Keepalived + 双 Nginx 实现 Nginx 自身的高可用
  • 结合健康检查脚本定期探测后端服务状态
  • 启用 HTTPS 并配置 SSL 证书,保障传输安全

总结

通过 Nginx 反向代理配置upstreambackup参数,我们轻松实现了简单的容灾备份机制。这不仅提升了系统的稳定性,也为后续构建更复杂的负载均衡和微服务架构打下基础。希望这篇教程能帮助你迈出高可用系统建设的第一步!

来源:

https://www.vps5.cn/category7.html

相关文章
|
4月前
|
缓存 JavaScript 前端开发
Nginx缓存优化配置(手把手教你提升网站加载速度)
本文介绍如何通过Nginx缓存优化网站性能,涵盖代理缓存与静态资源缓存的配置方法,帮助小白快速掌握缓存设置、验证及清理技巧,提升访问速度与服务器效率。
|
2月前
|
存储 人工智能 API
部署 OpenClaw 双层记忆系统实战:Mem0+Qdrant向量检索+Markdown持久化搭建教程
在AI智能体实际使用中,**记忆能力**直接决定体验上限。传统上下文窗口有限、历史对话易丢失、关键信息无法长期留存,导致每次交互都要重复说明需求。OpenClaw结合Mem0与Qdrant构建的**双层记忆体系**,完美解决这一问题:上层基于向量数据库实现语义检索与长期记忆,下层通过Markdown文件做关键数据持久化备份,兼顾检索效率与数据安全。
851 5
|
4月前
|
运维 Ubuntu 应用服务中间件
Nginx日志文件归档(手把手教你自动压缩和轮转日志)
本文介绍如何使用Linux自带的logrotate工具实现Nginx访问日志与错误日志的自动轮转、压缩与归档。通过简单配置,可避免日志文件过大占用磁盘空间,提升系统稳定性。涵盖配置步骤、参数详解、测试方法及常见问题解决方案,适合运维新手快速上手,保障服务器长期稳定运行。
|
网络协议 Linux
CentOS如何查看端口是被哪个应用/进程占用
CentOS如何查看端口是被哪个应用/进程占用
2177 0
|
4月前
|
SQL 缓存 安全
PL/pgSQL 入门教程(二):表达式和基础语句
本文详解PL/pgSQL核心语法:表达式由主SQL引擎以参数化SELECT执行,支持计划缓存;基础语句涵盖赋值(:=/=)、静态/动态SQL执行(INTO/PERFORM/EXECUTE)、结果处理(STRICT模式)、状态获取(FOUND/GET DIAGNOSTICS)及空操作NULL。
|
4月前
|
人工智能 数据可视化 物联网
大模型微调技术入门:从核心概念到实战落地全攻略
本课程系统讲解大模型微调核心技术,涵盖LoRA、QLoRA等高效方法,结合ComfyUI与主流工具实战,从数据准备到模型部署全流程落地,助力开发者低成本定制专属AI模型。
|
4月前
|
移动开发 前端开发 Java
微信直连商户公众号 JSAPI 支付,详细教程+源码
JSAPI 支付用于微信公众号内的网页调起微信收银台,常见于在公众号菜单、文章页或 H5 活动页中完成支付。该方式依赖微信内置浏览器环境,非微信浏览器无法调起。
600 1
|
4月前
|
移动开发 运维 Unix
Linux shutdown命令详解(小白也能看懂的完整教程)
本文详解Linux shutdown命令的使用方法,涵盖关机、重启、定时操作及单用户模式进入等实用技巧,适合新手快速掌握系统管理核心命令,提升运维能力。