温馨提示×

centos环境下nginx如何实现高可用

小樊
42
2025-11-25 21:29:57
栏目: 智能运维

在CentOS环境下实现Nginx的高可用,通常需要结合Keepalived和Heartbeat等工具来实现。以下是一个基本的步骤指南:

1. 安装Nginx

首先,确保你已经在两台或多台服务器上安装了Nginx。

sudo yum install epel-release
sudo yum install nginx

2. 安装Keepalived

Keepalived用于实现虚拟IP地址的管理和故障转移。

sudo yum install keepalived

3. 配置Keepalived

在每台服务器上配置Keepalived。假设我们有两台服务器,分别是server1server2

server1配置文件 (/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
    }
}

server2配置文件 (/etc/keepalived/keepalived.conf)

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. 启动Keepalived

在每台服务器上启动Keepalived服务。

sudo systemctl start keepalived
sudo systemctl enable keepalived

5. 配置Nginx

确保Nginx配置文件中没有硬编码的IP地址,而是使用域名或虚拟IP地址。

Nginx配置文件 (/etc/nginx/nginx.conf)

server {
    listen 80;
    server_name example.com;

    location / {
        root /var/www/html;
        index index.html index.htm;
    }
}

6. 测试高可用性

  1. 确保Keepalived服务正常运行。
  2. 检查虚拟IP地址是否已经分配到主服务器上。
  3. 停止主服务器上的Keepalived服务,观察虚拟IP地址是否自动转移到备份服务器上。
sudo systemctl stop keepalived
  1. 访问虚拟IP地址(例如 http://192.168.1.100),确保Nginx服务仍然可用。

7. 监控和日志

配置监控和日志系统,以便及时发现和解决问题。可以使用Prometheus、Grafana等工具来监控Nginx和Keepalived的状态。

8. 备份配置

定期备份Nginx和Keepalived的配置文件,以防万一需要恢复。

通过以上步骤,你可以在CentOS环境下实现Nginx的高可用性。根据实际需求,你可能还需要进一步优化和调整配置。

0