Nginx负载均衡故障转移(手把手教你搭建高可用Web服务)

简介: 本教程详解Nginx负载均衡与故障转移配置,通过upstream模块实现高可用反向代理。即使后端服务器宕机,Nginx也能自动切换流量,保障服务连续性,适合运维新手快速上手。

在现代Web应用架构中,Nginx负载均衡是保障服务高可用和性能扩展的关键技术。当某台后端服务器宕机时,如何自动将流量切换到其他健康服务器?这就是故障转移(Failover)要解决的问题。本教程将从零开始,带你一步步配置Nginx实现负载均衡与自动故障转移,即使你是运维小白也能轻松上手!

什么是Nginx负载均衡与故障转移?

Nginx负载均衡是指Nginx作为反向代理,将客户端请求分发到多个后端服务器,以提升系统吞吐量和可靠性。故障转移则是指当其中一台后端服务器不可用时,Nginx能自动检测并停止向其转发请求,将流量全部导向健康的服务器,从而保证服务不中断。

准备工作

你需要:

  • 一台安装了 Nginx 的服务器(作为负载均衡器)
  • 两台或以上的 Web 应用服务器(例如运行 Apache 或 Node.js 的服务器)
  • 基本的 Linux 命令行操作能力

步骤一:配置后端服务器

假设你有两台后端服务器,IP 分别为192.168.1.10192.168.1.11,每台都运行着一个简单的 Web 服务(比如返回 "Server A" 或 "Server B")。

步骤二:编辑 Nginx 配置文件

打开 Nginx 主配置文件(通常位于/etc/nginx/nginx.conf)或在/etc/nginx/conf.d/下创建新配置文件,例如load-balancer.conf

在配置文件中添加以下内容:

upstream backend {    server 192.168.1.10:80 max_fails=3 fail_timeout=30s;    server 192.168.1.11:80 max_fails=3 fail_timeout=30s;}server {    listen 80;    server_name example.com;    location / {        proxy_pass http://backend;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;    }}

关键参数说明:

  • max_fails=3:允许 Nginx 在 30 秒内最多失败 3 次才判定该服务器不可用。
  • fail_timeout=30s:失败超时时间为 30 秒。在此期间若连续失败达到 max_fails 次,则标记为宕机,并在接下来的 30 秒内不再向其转发请求。

步骤三:测试故障转移功能

1. 启动 Nginx:

sudo nginx -t && sudo systemctl reload nginx

2. 在浏览器或使用curl访问你的域名,应能看到请求被轮流分配到两台服务器(默认轮询策略)。

3. 手动关闭其中一台后端服务器(如192.168.1.10上的服务),再次访问。你会发现所有请求都被自动转发到另一台健康的服务器 —— 这就是 Nginx高可用 的体现!

进阶技巧:主动健康检查(可选)

上述配置使用的是被动健康检查(通过请求失败判断)。如果你使用的是 Nginx Plus(商业版),可以配置主动健康检查。开源版用户可通过第三方模块(如nginx_upstream_check_module)实现类似功能。

总结

通过合理配置 Nginx 的upstream模块,你可以轻松实现 反向代理配置、负载均衡和自动故障转移。这不仅提升了系统的稳定性,也为未来的横向扩展打下基础。记住,高可用不是“有没有”,而是“快不快”——Nginx 能在秒级内完成故障切换,极大减少服务中断时间。

现在,你已经掌握了 Nginx 负载均衡与故障转移的核心技能!快去你的服务器上试试吧~

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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
4天前
|
域名解析 网络协议 Linux
Linux网络基础完全指南(小白也能看懂的网络入门教程)
本教程系统讲解Linux网络基础,涵盖IP地址、子网掩码、网关、DNS等核心概念,介绍ifconfig、ip、ping等常用命令及网络配置文件的使用方法,助力掌握Linux网络配置技能。
211 117
|
5天前
|
运维 Linux 网络安全
CentOS7中Ansible安装与配置全攻略(小白也能看懂的详细教程)
本文详细介绍在CentOS7系统中安装与配置Ansible的完整步骤。从更新系统、添加EPEL源、安装Ansible,到配置主机清单和SSH连接测试,每一步都清晰易懂,适合初学者快速上手自动化运维工具Ansible,实现高效的配置管理和批量操作。
|
2月前
|
负载均衡 监控 算法
Nginx负载均衡优化(从零开始搭建高性能Web服务)
本教程详解Nginx负载均衡配置,从安装到优化,涵盖反向代理、多种负载策略(轮询、加权轮询、IP Hash等)、健康检查与性能调优,助你构建高可用、高性能的Web架构,小白也能快速上手。
|
10天前
|
人工智能 自然语言处理 安全
阿里云万小智AI建站:基础版、标准版、企业版主要功能及价格对比和选择参考
阿里云万小智 AI 建站是一款基于 AI 驱动的自助建站产品,无需代码基础,通过可视化拖拽与 AI 对话即可快速构建高性能、多语言、安全合规的网站。系统深度集成阿里云 ECS、RDS、OSS、CDN、SLB 与 Web 应用防火墙,保障高可用性、数据安全与全球访问速度。其提供多个版本,精准匹配从个人工作室到中大型企业的差异化需求。
320 167
|
14天前
|
存储 SQL Apache
Flink + Fluss 实战: Delta Join 原理解析与操作指南
Flink Delta Join 通过复用源表数据替代本地状态,解决双流 Join 状态膨胀问题。结合 Fluss 流存储,实现高效双向 Lookup,显著降低资源消耗与 Checkpoint 时间,提升作业稳定性与恢复速度,已在阿里大规模落地。
185 25
Flink + Fluss 实战: Delta Join 原理解析与操作指南
|
5天前
|
Ubuntu SEO
解决Ubuntu 22.04 IP地址修改重启未生效问题(副标题:小白也能懂的详细教程与SEO优化指南)
本文详细讲解Ubuntu 22.04修改IP地址后重启未生效的解决方案,涵盖netplan配置、服务重启及常见问题排查,步骤清晰,小白也能轻松掌握,确保网络设置持久生效。
|
29天前
|
存储 SQL JSON
打通可观测性的“任督二脉”:实体与关系的终极融合
阿里云推出图查询能力,基于 graph-match、graph-call、Cypher 三重引擎,实现服务依赖、故障影响、权限链路的秒级可视化与自动化分析,让可观测从‘看板时代’迈向‘图谱时代’。
254 43
|
1月前
|
Kubernetes Cloud Native Nacos
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
本文介绍一种基于开源 Higress 与 Nacos 的私有化 MCP 智能体网关架构,实现工具动态注册、Prompt 实时更新、多租户安全隔离,并支持在无外网、无 Helm 的生产环境中一键部署。
307 25
MCP 网关实战:基于 Higress + Nacos 的零代码工具扩展方案
|
24天前
|
数据采集 Web App开发 安全
爬虫专栏:破解网站检测selenium反爬——“当前环境正在被调试“”
本文记录了一次Selenium爬虫被Gitee安全验证拦截的排查经历。爬虫运行一周后突然失效,频繁触发“安全验证”弹窗,尝试隐藏webdriver特征、更换IP、模拟人工操作等均无效。最终发现:手动访问Gitee完成验证后,环境风险标记解除,爬虫自动恢复正常。表明反爬机制针对的是“访问环境”而非工具本身,人工验证可快速解锁,为同类问题提供简洁高效的解决思路。

热门文章

最新文章