debian

如何确保Debian LNMP的高可用性

小樊
39
2025-11-09 05:01:05
栏目: 智能运维

1. 负载均衡:分散流量压力
使用Nginx作为反向代理和负载均衡器,将客户端请求分发到多个后端服务器(如Nginx、PHP-FPM实例),避免单点过载。配置upstream模块定义后端服务器组,支持轮询(默认)加权轮询(根据服务器性能分配权重)、IP哈希(确保同一客户端请求固定到同一服务器,解决会话保持问题)等算法。例如:

http {
    upstream backend {
        server 192.168.1.101:80 weight=3;  # 权重高的服务器处理更多请求
        server 192.168.1.102:80;
        server 192.168.1.103:80;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

2. 数据库高可用:主从复制与故障切换
通过MySQL/MariaDB主从复制实现数据同步,当主库故障时,从库可快速接管。配置步骤:

3. PHP-FPM集群:提升应用处理能力
部署多个PHP-FPM实例,通过Nginx负载均衡分发PHP请求,避免单实例瓶颈。配置多个PHP-FPM池(每个池对应一个实例),修改listen参数为socket(如/run/php/php7.4-fpm.sock)或TCP端口(如127.0.0.1:9001);在Nginx中配置upstream指向这些实例,例如:

upstream php_backend {
    server unix:/run/php/php7.4-fpm.sock;
    server unix:/run/php/php7.4-fpm@www1.sock;
    server unix:/run/php/php7.4-fpm@www2.sock;
}
location ~ \.php$ {
    fastcgi_pass php_backend;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

4. 高可用保障:故障检测与自动切换
使用Keepalived实现Nginx或VIP的高可用,通过VRRP协议监控节点状态。配置主备节点:主节点state MASTER、优先级priority 100;备节点state BACKUP、优先级priority 50;关联健康检查脚本(如pgrep nginx),当主节点故障时,备节点自动接管VIP。例如:

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; }
    track_script { chk_nginx; }  # 关联健康检查
}

5. 监控与告警:提前发现问题
部署监控工具(如Prometheus+Grafana)实时监控系统状态,包括:

6. 数据备份与恢复:防止数据丢失
定期备份关键数据(数据库、网站文件),使用mysqldump工具备份MySQL(mysqldump -u root -p --all-databases > full_backup.sql),使用rsynctar备份网站文件(rsync -avz /var/www/html /backup/html)。将备份文件存储到异地(如云存储),确保灾难发生时可快速恢复。

7. 安全加固:降低攻击风险

0
看了该问题的人还看了