centos

centos nginx如何实现高可用

小樊
36
2025-07-10 16:09:00
栏目: 智能运维

在CentOS上实现Nginx的高可用性,通常涉及以下几个关键步骤:

1. 安装Nginx

首先,确保在两台或多台服务器上安装了Nginx。可以使用以下命令进行安装:

sudo yum install epel-release
sudo yum install nginx

2. 配置Nginx

在每台服务器上配置Nginx,确保它们处理相同的请求。以下是一个基本的Nginx配置示例:

http {
    upstream backend {
        server server1.example.com;
        server server2.example.com;
        # 可以添加更多服务器
    }

    server {
        listen 80;

        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;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
}

3. 使用Keepalived实现VIP(虚拟IP)

Keepalived可以用来管理虚拟IP地址,当一台服务器宕机时,VIP会自动切换到另一台服务器。

安装Keepalived

sudo yum install keepalived

配置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 99
    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. 测试高可用性

通过停止主服务器上的Keepalived服务来测试高可用性:

sudo systemctl stop keepalived

此时,VIP应该会自动切换到备份服务器上,确保服务的连续性。

6. 监控和日志

配置监控和日志记录,以便及时发现和解决问题。可以使用工具如Prometheus和Grafana进行监控,以及ELK Stack进行日志管理。

7. 负载均衡策略

根据需求,可以在Nginx配置中调整负载均衡策略,例如使用least_conn(最少连接)或ip_hash(IP哈希)等。

upstream backend {
    least_conn;
    server server1.example.com;
    server server2.example.com;
}

通过以上步骤,你可以在CentOS上实现Nginx的高可用性,确保在单点故障时服务仍然可用。

0
看了该问题的人还看了