首页主机资讯ubuntu lamp缓存优化策略

ubuntu lamp缓存优化策略

时间2025-12-08 19:44:03发布访客分类主机资讯浏览1245
导读:Ubuntu LAMP 缓存优化策略 一 分层缓存总体思路 建议采用自下而上的多层缓存: 应用层:PHP 字节码缓存(OPcache)+ 用户数据缓存(APCu/Memcached/Redis)。 Web 层:Apache 页面/对象缓...

Ubuntu LAMP 缓存优化策略

一 分层缓存总体思路

  • 建议采用自下而上的多层缓存:
    1. 应用层:PHP 字节码缓存(OPcache)+ 用户数据缓存(APCu/Memcached/Redis)。
    2. Web 层:Apache 页面/对象缓存(mod_cache_disk)+ 浏览器缓存(mod_expires)。
    3. 数据层:MySQL/MariaDB 缓冲池(InnoDB buffer pool)与查询缓存(视版本与负载)。
    4. 边缘层:静态资源走 CDN,动态内容可叠加 Varnish 反向代理。
  • 配合压缩与连接复用(mod_deflate、KeepAlive)可进一步降低带宽与握手开销。

二 Apache 层缓存配置

  • 启用模块
    • 启用磁盘缓存与过期控制:sudo a2enmod cache cache_disk expires deflate
  • 启用压缩(mod_deflate)
    • 建议在虚拟主机或全局配置中加入:
      <
          IfModule mod_deflate.c>
          
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript
      <
          /IfModule>
          
      
  • 浏览器缓存(mod_expires)
    • 对静态资源设置长期 Cache-Control/Expires:
      <
          IfModule mod_expires.c>
          
        ExpiresActive On
        ExpiresByType image/jpg  "access plus 1 month"
        ExpiresByType text/css  "access plus 1 week"
        ExpiresByType application/javascript "access plus 1 week"
      <
          /IfModule>
          
      
  • 页面/对象缓存(mod_cache_disk)
    • 示例(按目录或虚拟主机启用):
      <
          IfModule mod_cache.c>
          
        <
          IfModule mod_cache_disk.c>
          
          CacheRoot "/var/cache/apache2/mod_cache_disk"
          CacheEnable disk  /
          CacheDirLevels 2
          CacheDirLength 1
          CacheIgnoreHeaders Set-Cookie
          CacheMaxExpire 86400
          CacheDefaultExpire 3600
        <
          /IfModule>
          
      <
          /IfModule>
          
      
  • 验证与生效
    • 检查模块:apache2ctl -M | egrep 'cache|disk_cache|expires|deflate'
    • 重载生效:sudo systemctl reload apache2
  • 可选:高并发场景优先使用 MPM Event 并配合 KeepAlive,以提升连接复用与吞吐。

三 PHP 层缓存配置

  • OPcache(字节码缓存,PHP 5.5+ 内置)
    • 建议基础配置(php.ini):
      [opcache]
      opcache.enable=1
      opcache.memory_consumption=128
      opcache.interned_strings_buffer=8
      opcache.max_accelerated_files=10000
      opcache.revalidate_freq=60
      opcache.fast_shutdown=1
      
  • APCu(用户数据缓存,适合 WordPress 等对象/查询结果缓存)
    • 安装:sudo apt-get install php-apcu
    • 启用后在 php.ini 加入:extension=apcu.so
    • 应用侧使用 APCu 存储频繁读取的数据(如配置、片段、计算结果)。
  • 分布式对象缓存(Memcached/Redis)
    • Memcached:sudo apt-get install php-memcached memcached,配置 -m-l 后重启服务。
    • Redis:sudo apt-get install php-redis,在应用/框架中配置连接 127.0.0.1:6379
  • 说明:传统 APC 已不再维护,PHP 7+ 推荐使用 OPcache + APCu 的组合。

四 MySQL MariaDB 层缓存优化

  • InnoDB 缓冲池(核心)
    • 将大部分可用内存分配给 InnoDB 数据/索引缓存(需为系统与其他进程预留内存):
      • 示例:innodb_buffer_pool_size=1G(在 my.cnf 的 [mysqld] 段)。
  • 查询缓存(视版本与负载)
    • 对读多写少、结果集稳定的场景可开启:
      • 示例:query_cache_type=1query_cache_size=64M(注意高并发写入时可能带来锁争用)。
  • MyISAM 场景(如仍在使用)
    • 可设置键缓存:key_buffer_size=256M(示例值),并合理调整会话级缓冲区,避免过大导致内存浪费。
  • 其他常用项(按负载调优)
    • innodb_log_file_sizeinnodb_flush_log_at_trx_commit 等参数结合持久性与吞吐目标权衡。
  • 建议:优先保障 InnoDB 缓冲池命中率,查询缓存仅作为补充手段。

五 边缘层与运维实践

  • 边缘缓存与网络优化
    • 静态资源使用 CDN 分发,动态内容可前置 Varnish 做反向代理缓存。
    • 启用 HTTP/2(若使用支持 HTTP/2 的前端或反向代理)以多路复用提升加载速度。
  • 监控与维护
    • 定期清理/重建缓存目录(如磁盘缓存)、更新系统与组件、观察命中率与慢查询。
  • 低内存服务器要点(≤512MB
    • 精简 Apache 模块、降低日志级别、控制 PHP 内存(如 memory_limit=48M)、适度设置 OPcache/APCu 的共享内存,必要时考虑 Varnish 前置与对象缓存。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu lamp缓存优化策略
本文地址: https://pptw.com/jishu/766254.html
Linux中PHP如何管理内存 ubuntu中如何使用securecrt进行日志查看

游客 回复需填写必要信息