centos lamp怎样实现高可用性
导读:总体架构与组件选型 前端入口:部署2台负载均衡器(如Nginx/HAProxy),配合Keepalived提供VIP与故障漂移,消除单点。 Web层:至少2台 Apache节点,建议采用PHP-FPM与Apache解耦,便于独立扩缩与调优...
总体架构与组件选型
- 前端入口:部署2台负载均衡器(如Nginx/HAProxy),配合Keepalived提供VIP与故障漂移,消除单点。
- Web层:至少2台 Apache节点,建议采用PHP-FPM与Apache解耦,便于独立扩缩与调优。
- 数据层:部署MySQL高可用(主从复制,读多写少可加ProxySQL做读写分离;强一致/自动故障转移可用MHA)。
- 会话与文件:无状态会话(如Redis),上传文件使用NFS/GlusterFS/Ceph等共享存储或对象存储。
- 监控告警:建设Prometheus + Grafana(或Nagios/Zabbix)做指标与可用性监控。
- 备份容灾:定期全量/增量备份与异地归档,演练恢复流程。
部署步骤与关键配置
- 负载均衡与VIP
- 安装与基础配置(以HAProxy为例):
- 安装:yum install -y haproxy
- 配置示例:
- frontend http-in bind 192.168.12.21:80 default_backend servers
- backend servers balance roundrobin server server1 192.168.12.101:80 check server server2 192.168.12.102:80 check
- Keepalived提供VIP漂移(两台LB):
- 安装:yum install -y keepalived
- 主节点示例:
- vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass ab007 } virtual_ipaddress { 192.168.12.21 } }
- 备节点示例:state BACKUP、priority 99,其余一致;VIP绑定在eth0。
- 安装与基础配置(以HAProxy为例):
- Web层与PHP
- 建议采用PHP-FPM模式:Apache启用mod_proxy与mod_proxy_fcgi,将.php请求转发至本地或集群的PHP-FPM(如127.0.0.1:9000);多节点保持配置一致,便于横向扩展。
- 数据库高可用
- 主从复制:主库开启binlog,从库CHANGE MASTER TO … 指向主库;读多写少场景可加ProxySQL做读写分离与连接池。
- 自动故障转移:使用MHA(Manager/Node),实现主库宕机后的自动切换与最小数据丢失(需SSH免密、GTID/复制一致性配置)。
- 共享文件与上传
- 使用NFS/GlusterFS/CephFS共享/var/www/html或上传目录,确保多台Web节点内容一致;或采用对象存储(如S3兼容)承载用户上传。
会话与会话粘性策略
- 优先将会话外部化到Redis(如PHP的Redis Session Handler),实现多Web节点无状态与自动扩缩。
- 如确需会话粘性,可在负载均衡器启用:
- Nginx:ip_hash 或 sticky cookie;
- HAProxy:balance source 或 stick-table;
- 注意粘性会降低横向扩展与故障迁移的灵活性,仅在强依赖场景使用。
监控告警与日常运维
- 监控体系:
- 基础设施与业务指标:Prometheus + Grafana(Node Exporter、HAProxy/NGINX Exporter、MySQL Exporter、自定义PHP-FPM指标)。
- 可用性监控:Nagios/Zabbix对端口/进程/返回码/延迟做探测与告警。
- 例行巡检:
- 检查复制延迟(Seconds_Behind_Master)、连接数、慢查询、磁盘/IO、队列与错误日志;
- 定期演练主从切换与备份恢复,验证RPO/RTO;
- 变更走灰度与回滚预案,变更窗口内加强观测。
快速验证与故障演练清单
- 基础连通:
- 访问VIP:80验证页面与API可达;
- 在各Web节点执行 curl http://127.0.0.1/health 检查本地服务;
- 负载均衡:
- 后端摘除/恢复(如停一台Apache或HAProxy),确认自动摘除与健康检查生效;
- 故障转移:
- 停止主LB的Keepalived或网卡,确认VIP漂移到备LB且访问不中断;
- 模拟主库宕机,验证MHA切换后应用重连与数据一致性;
- 回切与复盘:
- 主库恢复后按流程切回或重建复制拓扑,记录切换耗时与数据差异。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos lamp怎样实现高可用性
本文地址: https://pptw.com/jishu/786038.html
