apache高可用静态服务需兼顾不中断与高效分发:一、用keepalived双机热备+vip实现单点故障消除;二、通过缓存头、gzip压缩、禁用目录索引、最小权限加固提升交付质量。

一、消除单点:用 Keepalived 实现双机热备
单台 Apache 一旦宕机,静态站就打不开。最常用且轻量的方案是部署两台 Apache 服务器,配合 Keepalived 提供虚拟 IP(VIP),主挂了自动切到备机。
- 在两台机器上都安装并启动 Apache 和 Keepalived(如 CentOS:yum install -y httpd keepalived)
- 主节点配置 /etc/keepalived/keepalived.conf,关键项:
- state MASTER,priority 100
- virtual_ipaddress { 192.168.1.100 }(这个 VIP 就是用户访问的地址)
-
track_script 检查 Apache 进程是否存活(例如用
killall -0 httpd)
- 备节点配 state BACKUP、priority 90,其余几乎一样
- 确保两台服务器的静态文件完全同步(可用 rsync 定时推,或共享存储如 NFS)
二、提升交付质量:静态服务本身要稳、快、省
即使有双机,如果每台 Apache 配置粗糙,仍会卡顿、泄露、被刷爆。这几项必须做:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
-
启用缓存头:加载
mod_expires,在<directory></directory>或站点配置里加:<ifmodule mod_expires.c><br> ExpiresActive On<br> ExpiresByType text/css "access plus 7 days"<br> ExpiresByType image/png "access plus 30 days"<br></ifmodule>
-
开启 Gzip 压缩:启用
mod_deflate,压缩 HTML/CSS/JS 等文本,减小传输体积 -
限制目录遍历风险:禁用
Options Indexes(除非明确需要列目录),避免敏感文件暴露;确需开放时,用IndexIgnore *.log *.conf屏蔽危险后缀 -
权限最小化:网站根目录属主设为
www-data:www-data(Debian/Ubuntu)或apache:apache(RHEL/CentOS),权限755,文件644,不碰777
三、可选增强:负载均衡 + 自动故障剔除
当静态资源访问量极大(比如 CDN 边缘节点或内部大文件下载平台),可再加一层软件负载均衡:
- 在前置代理机上启用
mod_proxy_balancer,定义后端多个 Apache 节点 - 配置健康检查:
BalancerMember http://192.168.1.10:80 status=+H表示初始屏蔽,由mod_lbmethod_heartbeat或自定义脚本探测后动态上线 - 搭配
ProxySet lbmethod=bytraffic或byrequests,按实际负载分发请求










