在现代 Web 应用架构中,Nginx反向代理 是实现高性能、高可用服务的关键组件。本教程将手把手教你如何搭建一个具备高可用架构的 Nginx 反向代理系统,即使你是零基础的小白,也能轻松上手!
什么是 Nginx 反向代理?
简单来说,反向代理就是用户访问的是代理服务器(如 Nginx),而 Nginx 再将请求转发给后端真正的应用服务器(比如运行 Python、Java 或 Node.js 的服务器)。这样做的好处包括:
- 隐藏真实服务器,提升安全性
- 实现负载均衡,分散请求压力
- 缓存静态资源,加速访问
- SSL 终止,简化证书管理
为什么需要高可用?
单台 Nginx 服务器一旦宕机,整个网站就无法访问。为了防止单点故障,我们需要部署多台 Nginx 服务器,并通过某种机制自动切换流量,这就是“高可用”。
高可用方案:Keepalived + Nginx
最常用的开源高可用方案是使用 Keepalived 配合 Nginx。Keepalived 通过 VRRP 协议实现虚拟 IP(VIP)的自动漂移。当主 Nginx 挂掉时,备用 Nginx 会自动接管 VIP,用户无感知。
环境准备
- 两台 Linux 服务器(例如 CentOS 7)
- IP 地址:主服务器 192.168.1.10,备服务器 192.168.1.11
- 虚拟 IP(VIP):192.168.1.100(用于对外提供服务)
- 后端应用服务器(例如 192.168.1.20:8080)
步骤一:安装 Nginx 和 Keepalived
在两台服务器上分别执行:
# 安装 Nginxsudo yum install -y nginx# 安装 Keepalivedsudo yum install -y keepalived
步骤二:配置 Nginx 反向代理
在两台服务器上配置相同的 Nginx 反向代理规则(/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/proxy.conf):
server { listen 80; server_name example.com; location / { proxy_pass http://192.168.1.20:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }} 重启 Nginx 使配置生效:
sudo systemctl restart nginx
步骤三:配置 Keepalived(主服务器)
编辑 /etc/keepalived/keepalived.conf:
vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100 }} 步骤四:配置 Keepalived(备服务器)
备服务器配置几乎相同,只需修改两处:
vrrp_instance VI_1 { state BACKUP # 改为 BACKUP interface eth0 virtual_router_id 51 priority 90 # 优先级低于主服务器 advert_int 1 authentication { auth_type PASS auth_pass 123456 } virtual_ipaddress { 192.168.1.100 }} 步骤五:启动服务并测试
在两台服务器上启动 Keepalived:
sudo systemctl start keepalivedsudo systemctl enable keepalived
现在,你可以通过访问 http://192.168.1.100 来测试服务。正常情况下,流量会由主服务器处理。
为了验证高可用性,可以手动关闭主服务器的 Keepalived 或断网:
sudo systemctl stop keepalived
几秒后,VIP 会自动漂移到备服务器,网站依然可访问!
总结
通过本教程,你已经掌握了如何使用 Nginx 和 Keepalived 构建一个具备高可用架构的反向代理系统。这种方案成本低、稳定性高,非常适合中小企业或个人项目。记住,Nginx反向代理 不仅能提升性能,配合 负载均衡 还能横向扩展你的应用服务能力。
赶快动手试试吧!如果你在配置过程中遇到问题,欢迎在评论区留言交流。
SEO关键词:Nginx反向代理、高可用架构、负载均衡、Nginx配置

