1、Keepalive和lvs
1.1 概述
keepalive是一个基于 VRRP(Virtual Router Redundancy Protocol)协议实现的高可用性解决方案,主要用于 Linux 系统下的负载均衡和高可用性集群。它通过虚拟 IP(VIP)的故障转移,确保服务的高可用性。
lvs是是一个高性能的负载均衡解决方案,工作在 OSI 模型的第四层,能够有效地将外部请求分发到后端的真实服务器上。
1.2 具体实施
启用 KeepAlive 允许单个 TCP 连接处理多个请求,从而减少开销。 默认情况下,此功能可能已关闭或设置为较低的限制。
vim /etc/apache2/apache2.conf
- 找到 KeepAlive 指令并将其设置为 On:KeepAlive On
- 设置 MaxKeepAliveRequests 以限制每个连接可以处理的请 求数。高流量网站的典型值: MaxKeepAliveRequests 100
- 设置 KeepAliveTimeout 以减少 Apache 在同一连接上等待其 他请求的时间。对于繁忙的服务器,此值应保持较低(1-5 秒): KeepAliveTimeout 2
2、 Apache MPM
2.1 概述
MPM(Multi-Processing Module,多处理模块)是 Apache HTTP 服务器的核心组件,用于控制服务器如何处理并发请求。Apache 通过 MPM 来管理子进程或线程,从而实现高效的请求处理和资源利用。
2.2 具体实施
apache 使用多处理模块(MPM)来处理请求。/etc/apache2/mods-available/mpm_prefork.conf 7或 /etc/apache2/mods-available/mpm_worker.conf 取决于使用的MPM(多路处理模块),根据硬件资源进行调整。
默认情况下,启用了 MPM Prefork 模块,这可能不适 用于高流量。MPM Event 或 Worker 更适合扩展。
- a2dismod mpm_prefork
- a2enmod mpm_worker
- systemctl restart apache2
3、压缩
3.1 概述
Apache HTTP 服务器支持对响应内容进行压缩,这通常通过 mod_deflate
模块实现。mod_deflate
是一个输出过滤器,能够对服务器发送给客户端的响应内容进行压缩,从而减少传输数据的大小,提高页面加载速度。
3.2 具体实施
- sudo a2enmod deflate
- sudo systemctl restart apache2
4、 禁用不必要模块
禁用不需要的Apache模块以减少内存使用:
- sudo a2dismod autoindex status env filter negotiation setenvif
- sudo systemctl restart apache2
5、日志修改
6、ssl/TLS(证书和数据加密安全证书)
- sudo a2enmod http2 ssl headers
- sudo systemctl restart apache2
7、缓存
7.1 概述
缓存是一种将数据存储在临时存储区域的技术,目的是减少对原始数据源的访问次数,从而提高数据访问的速度和效率。在 Web 服务器中,缓存可以存储静态内容(如 HTML 页面、图片、CSS 文件等)或动态生成的内容,以便在后续请求中快速响应。
7.2 具体实施
- sudo a2enmod cache_disk
- sudo systemctl restart apache2
-
CacheRoot: 定义存储缓存文件的目录。
-
CacheDirLevels 和 CacheDirLength:优化缓存存储效率。
-
CacheEnable disk /: 为根目录启用缓存