当前位置: 首页 > news >正文

web-apache优化

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 /: 为根目录启用缓存

http://www.dtcms.com/a/334420.html

相关文章:

  • Java Web部署
  • Python:如何在Pycharm中显示geemap地图?
  • Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
  • 开源数据发现平台:Amundsen Frontend Service React 配置 Flask 配置 Superset 预览集成
  • 教育行业破局:课程答疑智能体如何用“按次付费+算力限制”实现精准变现,可独立部署(井云智能体封装系统)
  • NLP:Transformer模型构建
  • 数字分类:机器学习经典案例解析
  • 通过rss订阅小红书,程序员将小红书同步到自己的github主页
  • MCU软件架构---RAM分区设计原则(四)
  • PyTorch生成式人工智能——使用MusicGen生成音乐
  • 二叉树的三种遍历方法
  • List容器:特性与操作使用指南
  • VS Code配置MinGW64编译GLPK(GNU Linear Programming Kit)开源库
  • 实现Android图片手势缩放功能的完整自定义View方案,结合了多种手势交互功能
  • 纸板制造制胶工艺学习记录4
  • Redis集群设计实战:从90%缓存命中率看高并发系统优化
  • Windows常见文件夹cache的作用还有其他缓存类型文件夹的作用
  • backward怎么计算的是torch.tensor(2.0, requires_grad=True)变量的梯度
  • 【论文阅读】Multimodal Graph Contrastive Learning for Multimedia-based Recommendation
  • Linux 下 安装 matlab 2025A
  • 机器学习——CountVectorizer将文本集合转换为 基于词频的特征矩阵
  • 软件的终极:为70亿人编写70亿个不同的软件
  • C++面试题及详细答案100道( 31-40 )
  • SysTick寄存器(嘀嗒定时器实现延时)
  • cPanel Python 应用部署流程
  • 记录一下第一次patch kernel的经历
  • CSV 生成 Gantt 甘特图
  • 2^{-53} 单位舍入误差、机器精度、舍入的最大相对误差界限
  • 【QGIS数据篇】QGIS 3.40 栅格计算器经典实用公式全集
  • 高并发场景下如何避免重复支付