首页 / 大宽带服务器 / 正文
Nginx主从配置,高可用性和负载均衡的实现,nginx主从模式

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

一、背景介绍

Nginx主从配置,高可用性和负载均衡的实现,nginx主从模式

随着互联网技术的迅猛发展,网站的访问量和数据流量不断增加,为了应对这种高并发、大数据量的访问需求,提高服务的可用性和稳定性,许多网站选择使用Nginx作为反向代理服务器,Nginx以其高性能、高并发处理能力、低资源消耗等优点被广泛应用,单台Nginx服务器仍然存在单点故障的风险,一旦出现故障可能导致整个服务不可用,采用Nginx的主从配置(也称为双机热备或高可用配置)成为了许多企业的首选方案。

二、什么是Nginx主从配置?

Nginx简介

Nginx是一款高性能的HTTP服务器和反向代理服务器,它以其高并发处理能力、低资源消耗、灵活的配置系统以及丰富的第三方模块而闻名,Nginx广泛应用于反向代理、负载均衡和静态资源的高效分发。

主从配置的基本概念

Nginx主从配置指的是利用至少两台Nginx服务器来实现高可用性,通过Keepalived等工具来实现VIP(虚拟IP)的漂移,从而达到当一台服务器发生故障时,另一台服务器可以自动接管继续提供服务的目的。

为什么需要主从配置

在单一Nginx服务器的情况下,如果服务器出现硬件故障、软件故障或者网络问题,那么整个服务就会中断,影响用户体验和业务连续性,主从配置通过冗余设计,确保在一个节点出现问题时,另一个节点可以及时接管,从而实现高可用性。

三、Nginx主从配置的实现

Keepalived的作用与原理

Keepalived是一款基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)的工具,用于实现高可用的路由器和服务器,它可以在多台服务器之间实现VRRP协议,从而保证当主服务器失效时,备份服务器可以自动接管IP地址,继续提供服务。

VRRP协议解析

VRRP是一种容错协议,通过虚拟路由器冗余来提高网络的稳定性和可靠性,它将多台物理路由器组成一个逻辑上的虚拟路由器,对外提供一个虚拟IP地址,当主路由器失效时,备份路由器会接管这个虚拟IP地址,继续提供路由服务。

四、Nginx主从架构设计

双机热备模式

双机热备模式是指一台Nginx服务器作为主机运行,另一台作为备用机处于闲置状态,当主机发生故障时,备用机会自动接管并继续提供服务,该模式配置简单,适用于对资源利用率要求不高且需要高可用性的应用场景。

双主模式

双主模式是指两台Nginx服务器同时工作,各自拥有独立的公网IP地址和虚拟IP地址,这种模式下,两台服务器都参与请求的处理,但通过Keepalived实现虚拟IP的漂移,从而在某个节点失效时,另一个节点可以接管更多的工作负载,这种模式提高了资源利用率,但也增加了配置的复杂性。

五、Nginx主从配置的具体实现

环境准备

- 操作系统:以CentOS 7为例。

- 软件版本:Nginx 1.18.0,Keepalived 2.2.7。

- 服务器IP地址:主服务器192.168.38.64,从服务器192.168.38.66,VIP地址192.168.38.100。

Nginx安装与配置

1)Nginx安装步骤

安装EPEL存储库
yum install epel-release -y
安装Nginx
yum install nginx-1.18.0 -y
启动Nginx并设置开机自启
systemctl start nginx
systemctl enable nginx

2)基础配置修改

编辑Nginx的主配置文件/etc/nginx/nginx.conf,进行基本的HTTP服务配置:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }
    }
}

将上述配置中的listen 80;改为listen 8080;,避免与Keepalived使用的端口冲突。

Keepalived安装与配置

1)Keepalived安装步骤

上传Keepalived安装包到服务器
tar zxvf keepalived-2.2.7.tar.gz
cd keepalived-2.2.7
./configure --prefix=/usr/local/keepalived
make && make install
创建Keepalived配置文件目录及文件
mkdir -p /etc/keepalived/
cp src/keepalived.conf /etc/keepalived/

2)Keepalived配置文件详解

编辑主服务器上的Keepalived配置文件/etc/keepalived/keepalived.conf

global_defs {
    router_id Nginx_Master
}
vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -5
    fall 3
    rise 2
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.38.100
    }
    track_script {
        chk_nginx
    }
}

编辑从服务器上的Keepalived配置文件/etc/keepalived/keepalived.conf

global_defs {
    router_id Nginx_Backup
}
vrrp_script chk_nginx {
    script "/etc/keepalived/check_nginx.sh"
    interval 2
    weight -5
    fall 3
    rise 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.38.100
    }
    track_script {
        chk_nginx
    }
}

3) Nginx健康检测脚本编写

在主从服务器上创建健康检测脚本/etc/keepalived/check_nginx.sh

#!/bin/bash
if ! pgrep -q nginx; then
    systemctl start nginx
fi

赋予脚本执行权限:

chmod +x /etc/keepalived/check_nginx.sh

六、Nginx主从配置的优化与监控

Nginx的负载均衡配置

在高并发环境下,为了提高系统的处理能力,可以通过Nginx的负载均衡功能将请求分配到多台应用服务器上,在Nginx的配置文件中添加负载均衡配置:

upstream backend {
    server 192.168.38.65:8080 weight=1;
    server 192.168.38.66:8080 weight=1;
}
server {
    listen 80;
    server_name yourdomain.com;
    location / {
        proxy_pass http://backend;
        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会根据设定的权重将请求分配到不同的应用服务器上。

2. Keepalived的状态监控与日志分析

Keepalived的日志文件通常位于/var/log/keepalived目录下,可以通过查看这些日志来监控Keepalived的运行状态,还可以使用一些监控工具如Prometheus和Grafana来实时监控系统性能和状态。

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