web-apache优化

发布于:2025-08-17 ⋅ 阅读:(20) ⋅ 点赞:(0)

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 更适合扩展。

禁用 Prefork 并启用 Worker/Event MPM:
  • a2dismod mpm_prefork
  • a2enmod mpm_worker
  • systemctl restart apache2

3、压缩

3.1 概述

Apache HTTP 服务器支持对响应内容进行压缩,这通常通过 mod_deflate 模块实现。mod_deflate 是一个输出过滤器,能够对服务器发送给客户端的响应内容进行压缩,从而减少传输数据的大小,提高页面加载速度。

3.2 具体实施
启用mod_deflate以压缩传输的数据:
  • sudo a2enmod deflate
  • sudo systemctl restart apache2

4、 禁用不必要模块

禁用不需要的Apache模块以减少内存使用:

  • sudo a2dismod autoindex status env filter negotiation setenvif
  • sudo systemctl restart apache2

5、日志修改

日志级别从默认的warn降低到error以减少磁盘I/O:
sudo sed -i 's/ErrorLog \ $
{APACHE_LOG_DIR}\/error.log/ErrorLog $
{APACHE_LOG_DIR}\/error.log\nLogLevel error/'
/etc/apache2/apache2.conf
sudo systemctl restart apache2

6、ssl/TLS(证书和数据加密安全证书)

如果使用SSL证书,确保使用现代加密套件并启用HTTP/2:
  • sudo a2enmod http2 ssl headers
  • sudo systemctl restart apache2

7、缓存

7.1 概述

缓存是一种将数据存储在临时存储区域的技术,目的是减少对原始数据源的访问次数,从而提高数据访问的速度和效率。在 Web 服务器中,缓存可以存储静态内容(如 HTML 页面、图片、CSS 文件等)或动态生成的内容,以便在后续请求中快速响应。

7.2 具体实施
启用mod_cache来缓存静态文件:
  • sudo a2enmod cache_disk
  • sudo systemctl restart apache2
  • CacheRoot: 定义存储缓存文件的目录。
  • CacheDirLevels 和 CacheDirLength:优化缓存存储效率。
  • CacheEnable disk /: 为根目录启用缓存


网站公告

今日签到

点亮在社区的每一天
去签到