Linux LAMP更新与维护策略
小樊
39
2025-12-20 00:15:04
Linux LAMP更新与维护策略
一 更新策略与节奏
- 节奏与窗口:将更新分为安全更新即时、补丁周二集中、功能更新按月/季度;生产环境选择低峰时段执行,变更前完成备份与回滚方案。
- 安全更新优先:
- RHEL/CentOS 系:安装并使用yum-security插件,先检测再仅装安全补丁。
- 检查:sudo yum --security check-update
- 仅安全更新:sudo yum update --security
- Debian/Ubuntu 系:启用无人值守安全更新(unattended-upgrades),自动安装安全补丁。
- 安装与启用:sudo apt install unattended-upgrades -y && sudo dpkg-reconfigure unattended-upgrades
- 常规升级与验证:
- Debian/Ubuntu:sudo apt update && sudo apt full-upgrade(或 apt upgrade),升级后用 apache2 -v、mysql/mariadb --version、php -v 校验版本与服务状态。
- 变更前后保留/对比配置文件,必要时回滚;任何更新后执行应用与数据库连通性与功能回归测试。
二 安全加固基线
- 系统与网络:
- 仅开放必要端口(如 22/80/443),使用 UFW/iptables/firewalld 实施最小暴露面;禁用不必要服务与端口。
- 强化身份认证:禁用 root SSH 密码登录,使用SSH 密钥;为管理口设置来源限制与多因素认证(如可行)。
- Apache:
- 精简加载模块,仅启用必要功能;关闭目录浏览;为虚拟主机启用 HTTPS/TLS;限制请求方法(如禁用 PUT/DELETE 除非业务必需)。
- 数据库(MySQL/MariaDB):
- 运行 mysql_secure_installation 完成基础加固;禁止 root 远程登录;按“最小权限”原则创建业务账号并限制来源主机。
- PHP:
- 在 php.ini 中禁用高风险函数(如 exec、shell_exec、system、passthru);合理设置 upload_max_filesize、post_max_size;启用 OPcache 提升性能并降低解释器开销。
- 加密与证书:
- 使用 Let’s Encrypt/Certbot 自动化签发与续期证书,强制 HTTPS 并开启 HSTS。
三 性能与可用性优化
- Apache:
- 结合业务选择并调优 MPM(如 prefork/worker/event);优化 MaxRequestWorkers/KeepAlive/Timeout;启用 mod_expires、mod_headers 控制缓存策略;启用 Gzip/Brotli 压缩。
- MariaDB/MySQL:
- 关键参数:将 innodb_buffer_pool_size 设为内存的50%–80%(视负载与实例共存情况调整);结合慢查询日志与索引优化;定期执行维护任务(如碎片整理/优化表)。
- PHP:
- 启用并调优 OPcache(如 opcache.memory_consumption、opcache.validate_timestamps 在开发与生产区分设置);按应用需求调整 memory_limit、max_execution_time。
- 架构与网络:
- 静态资源使用 CDN 与浏览器缓存;必要时采用 Nginx 作为反向代理/静态资源服务与 Apache 协同,提升并发与静态资源效率。
四 备份与恢复
- 策略与频率:
- 数据库:每日全量备份(如 mysqldump),关键库/表可加增量/时间点恢复方案;保留至少7–30天并可离线归档。
- 文件与配置:定期备份 /var/www、虚拟主机配置、SSL 证书与密钥、系统关键配置(如 /etc 下相关目录);使用 tar/rsync 或企业级备份工具。
- 系统镜像:定期做整机镜像/快照(配合云盘快照或本地工具),用于快速重建。
- 验证与演练:
- 定期执行恢复演练与校验和验证,确保备份可用;在备份窗口外保留离线/异地副本以应对灾难场景。
五 监控 日志与变更管理
- 监控与告警:
- 监控 CPU、内存、磁盘 I/O、网络、连接数、查询延迟 等关键指标;使用 Prometheus + Grafana 等可视化与告警平台,结合应用日志设置阈值告警。
- 日志管理:
- 集中收集并轮转 Apache 访问/错误日志、MariaDB/MySQL 错误与慢查询日志、系统日志;保留周期与合规要求一致;对异常模式(如暴力登录、SQL 注入特征)设置告警。
- 变更与回滚:
- 使用配置管理(如 Ansible/Salt)与版本化配置仓库;更新前生成变更单与回滚预案;变更后在预发布/灰度环境验证,再推广至生产。