首页 / 美国服务器 / 正文
Nginx 主备模式配置详解,nginx主备模式

Time:2025年01月07日 Read:11 评论:42 作者:y21dr45

什么是Nginx主备模式?

Nginx是一款高性能的HTTP和反向代理服务器,广泛用于负载均衡、静态文件服务以及作为HTTP服务器,在高可用性架构中,通过主备模式来确保服务的连续性显得尤为重要,Nginx的主备模式指的是利用Keepalived等工具实现的高可用性方案,其中主节点(Master)对外提供服务,而备份节点(Backup)则在主节点故障时迅速接替,从而保证系统的不间断运行。

Nginx 主备模式配置详解,nginx主备模式

为什么需要Nginx主备模式?

在分布式系统中,单点故障是最大的风险之一,如果Nginx服务器宕机,那么所有经过它反向代理的后端服务都将无法访问,通过主备模式,我们可以在一个Nginx节点发生故障时迅速切换到另一个备用节点,从而实现高可用性。

怎样实现Nginx的主备模式?

实现Nginx主备模式的常见方法是结合Keepalived,这是一个基于VRRP协议(Virtual Router Redundancy Protocol)来实现失败切换的软件,下面是详细的步骤和示例:

1. 环境准备

假设我们有以下三台虚拟机:

主机IP 主机名称 安装应用
192.168.10.115 nginx-server Nginx
192.168.10.116 tomcat01 Tomcat/JDK
192.168.10.50 tomcat02 Tomcat/JDK

2. 安装Nginx和Keepalived

在所有服务器上执行以下命令以安装Nginx和Keepalived:

安装Nginx
sudo apt-get update
sudo apt-get install -y nginx
安装Keepalived
sudo apt-get install -y keepalived

3. 配置Nginx

nginx-server上,配置Nginx使用upstream模块来管理后端服务器:

http {
    upstream tomcat_server {
        server 192.168.10.116:8080 max_fails=2 fail_timeout=60s weight=2;
        server 192.168.10.50:8080 max_fails=2 fail_timeout=60s weight=1 backup;
    }
    server {
        listen 80;
        server_name localhost;
        location / {
            proxy_pass http://tomcat_server;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
    }
}

4. 配置Keepalived

nginx-server和备份节点执行以下操作来配置Keepalived:

编辑/etc/keepalived/keepalived.conf文件:

vim /etc/keepalived/keepalived.conf

添加以下内容:

global_defs {
    router_id nginx-master                   # 唯一的路由器ID
}
vrrp_instance VI_1 {
    state MASTER                          # 状态设置为 master
    interface eth0                        # 绑定的网络接口
    virtual_router_id 51                   # 虚拟路由ID
    priority 100                           # 优先级,数值越大越优先
    advert_int 1                           # 健康检查的时间间隔
    authentication {
        auth_type PASS
        auth_pass your_password            # 设置一个简单的密码进行认证
    }
    virtual_ipaddress {
        192.168.10.100                    # 虚拟IP地址
    }
}

对于备份节点,将state改为BACKUP,并将priority设为一个较低的值,如90

5. 启动和测试

nginx-server和备份节点分别启动Nginx和Keepalived:

sudo systemctl start nginx
sudo systemctl start keepalived

使用以下命令模拟故障切换:

sudo ip addr del 192.168.10.100 dev eth0    # 在主节点移除虚拟IP

备份节点应自动接管虚拟IP并继续提供服务,可以通过浏览器或curl命令测试服务的可用性。

通过上述步骤,我们可以利用Nginx和Keepalived实现高可用性的主备模式,此方案不仅能提高系统的稳定性,还能在主节点故障时迅速切换到备用节点,从而保证业务的连续性,在实际生产环境中,还可以根据需求进一步优化配置,如增加更多的健康检查和自动化脚本等。

标签: nginx 主备 
排行榜
关于我们
「好主机」服务器测评网专注于为用户提供专业、真实的服务器评测与高性价比推荐。我们通过硬核性能测试、稳定性追踪及用户真实评价,帮助企业和个人用户快速找到最适合的服务器解决方案。无论是云服务器、物理服务器还是企业级服务器,好主机都是您值得信赖的选购指南!
快捷菜单1
服务器测评
VPS测评
VPS测评
服务器资讯
服务器资讯
扫码关注
鲁ICP备2022041413号-1