参考资料

  1. nginx 配置静态文件路径
  2. NginxPHP服务器环境搭建详细说明以及案例
  3. Nginx如何支持动态内容?
  4. nginx -g详细说明以及案例
  5. 如何配置Nginx用户认证?
  6. Nginx代理缓存配置详细说明以及案例
  7. Nginxsendfile 零复制指令详细说明以及案例
  8. 如何查看要查看 Nginx 默认配置文件路径

Nginx Keepalived配置详细说明以及案例

Nginx Keepalived 配置详细说明

1. 概述

Keepalived 是一个用于实现高可用性(HA)的软件,通常与 Nginx 结合使用,以确保在服务器故障时自动切换到备用服务器。Keepalived 通过 VRRP(Virtual Router Redundancy Protocol)协议实现主备切换。

2. 安装 Keepalived

在 CentOS 或 Ubuntu 上安装 Keepalived:

# CentOS
yum install keepalived -y

# Ubuntu
apt-get install keepalived -y

3. 配置 Keepalived

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 1234
    }
    virtual_ipaddress {
        192.168.1.100
    }
}
备用服务器配置
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

4. 配置 Nginx

确保 Nginx 在两台服务器上都已安装并配置好。Nginx 的配置文件通常位于 /etc/nginx/nginx.conf/etc/nginx/sites-available/default

5. 启动服务

启动并启用 Keepalived 和 Nginx 服务:

systemctl start keepalived
systemctl enable keepalived
systemctl start nginx
systemctl enable nginx

6. 测试

  • 访问虚拟 IP 地址 192.168.1.100,确保 Nginx 正常响应。

  • 停止主服务器的 Keepalived 服务,观察备用服务器是否接管虚拟 IP。

案例

假设有两台服务器:

  • 主服务器:192.168.1.101

  • 备用服务器:192.168.1.102

  • 虚拟 IP:192.168.1.100

主服务器配置

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

备用服务器配置

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    virtual_ipaddress {
        192.168.1.100
    }
}

测试步骤

  1. 启动主服务器和备用服务器的 Keepalived 和 Nginx 服务。

  2. 访问 192.168.1.100,确认 Nginx 正常响应。

  3. 停止主服务器的 Keepalived 服务,观察备用服务器是否接管虚拟 IP。

  4. 恢复主服务器的 Keepalived 服务,观察主服务器是否重新接管虚拟 IP。

通过以上配置和测试,可以实现 Nginx 的高可用性。