温馨提示×

centos nginx集群部署方案

小樊
48
2025-06-28 13:22:52
栏目: 智能运维

在CentOS上部署Nginx集群可以采用多种方式,包括基本的负载均衡和更高可用性的配置。以下是一个基本的Nginx集群部署方案,包括安装、配置和优化步骤。

1. 环境准备

硬件需求

  • 至少2台服务器:主节点(Master)和备节点(Backup)
  • 虚拟IP(VIP):用于对外提供服务的浮动IP(如192.168.1.150)

软件组件

  • Nginx:处理HTTP请求并实现负载均衡
  • Keepalived:通过VRRP协议实现VIP漂移,保障服务高可用
  • 健康检查脚本:监控Nginx进程状态,异常时触发主备切换

2. 安装Nginx

添加Nginx官方仓库

sudo tee /etc/yum.repos.d/nginx.repo <<EOF
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/
gpgcheck=0
enabled=1
EOF

安装Nginx

sudo yum install -y nginx

启动Nginx服务

sudo systemctl start nginx

设置开机自启

sudo systemctl enable nginx

3. 配置Nginx

基本配置

编辑Nginx的配置文件,通常位于/etc/nginx/nginx.conf。以下是一个简单的负载均衡配置示例:

http {
    upstream backend {
        server 192.168.1.10:80;  # 第一台服务器的IP及端口
        server 192.168.1.11:80;  # 第二台服务器的IP及端口
    }

    server {
        listen 80;
        server_name 192.168.1.150;  # Nginx服务器的IP地址

        location / {
            proxy_pass http://backend;
        }
    }
}

健康检查

在配置文件中添加健康检查:

upstream backend {
    server 192.168.1.10:80;
    server 192.168.1.11:80;
    health_check;
}

4. 使用Keepalived实现高可用性

安装Keepalived

sudo yum install -y 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.150
    }

    track_script {
        chk_nginx
    }
}

script chk_nginx {
    interval 2
    weight 2
    rise 2
    fall 3
    script "/etc/keepalived/ck_ng.sh"
}

备节点配置(/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.150
    }

    track_script {
        chk_nginx
    }
}

5. 启动和测试

启动服务

sudo systemctl start keepalived
sudo systemctl start nginx

验证配置

通过访问Nginx服务器的IP地址(如192.168.1.150)来验证配置是否正确。如果一切正常,您应该能够看到Nginx的欢迎页面,并且请求会被负载均衡到后端服务器。

6. 高级配置

负载均衡策略

  • 轮询(Round Robin)
  • 加权轮询(Weighted Round Robin)
  • IP哈希(IP Hash)
  • 最少连接(Least Connections)
  • 加权最少连接(Weighted Least Connections)
upstream backend {
    server 192.168.1.10:80 weight=3;
    server 192.168.1.11:80 weight=2;
}

SSL/TLS

使用Let’s Encrypt免费获取SSL证书,并配置Nginx以支持HTTPS。

sudo yum install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com

通过以上步骤,您可以在CentOS上成功部署一个高性能、高可用的Nginx集群。根据实际需求,您还可以进一步优化和扩展配置。

0