首页主机资讯ubuntu缓存如何与缓存插件配合使用

ubuntu缓存如何与缓存插件配合使用

时间2026-01-16 22:10:04发布访客分类主机资讯浏览902
导读:Ubuntu 缓存与缓存插件配合的整体思路 分层协同:用系统级 tmpfs加速插件生成的临时文件,用Nginx/Apache 页面缓存承接首屏命中,用PHP OPcache加速脚本执行,用Redis/Memcached做对象/页面片段缓存...

Ubuntu 缓存与缓存插件配合的整体思路

  • 分层协同:用系统级 tmpfs加速插件生成的临时文件,用Nginx/Apache 页面缓存承接首屏命中,用PHP OPcache加速脚本执行,用Redis/Memcached做对象/页面片段缓存,用Varnish作为反向代理全页缓存,最外层再叠加CDN浏览器缓存
  • 缓存失效:为“登录态、购物车、评论表单、后台管理”等动态场景设置不缓存短 TTL;对可缓存内容设置较长 max-age并配合ETag/Last-Modified协商。
  • 监控与回退:观察命中率、后端响应时间与错误率,必要时一键降级(关闭代理缓存或插件缓存)。

Nginx 与页面缓存插件配合

  • 典型场景:WordPress 等 CMS 的页面缓存插件(如 W3 Total Cache、WP Super Cache)生成静态 HTML,Nginx 作为反向代理/静态服务器直接命中,减少 PHP 与数据库压力。
  • 推荐做法:
    1. 为插件生成的静态目录(如 /var/www/example.com/wp-content/cache)设置强缓存与协商缓存:
      location ~* ^/wp-content/cache/ {
      expires 7d; add_header Cache-Control “public, must-revalidate”;
      try_files $uri $uri/ /index.php?$args;
      }
    2. 若使用 Nginx 作为反向代理,可开启 proxy_cache 作为“插件缓存失效/击穿”的兜底:
      proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=STATIC:50m max_size=1g inactive=60m;
      location / { proxy_pass http://127.0.0.1:8080; proxy_cache STATIC; proxy_cache_valid 200 302 10m; proxy_cache_use_stale error timeout updating; }
    3. 对动态请求(登录、POST、查询字符串明显变化的页面)设置 proxy_no_cache $cookie_*,$request_method !~ ^(GET|HEAD)$; 避免误缓存。
    4. 插件侧建议:开启“仅对已登录用户不缓存”“移动端分离缓存”“对象缓存(Redis/Memcached)”。

Apache 与页面缓存插件配合

  • 启用磁盘与过期控制:
    1. 启用模块:sudo a2enmod cache cache_disk expires headers
    2. 配置虚拟主机:


      CacheRoot /var/cache/apache2/mod_cache_disk
      CacheEnable disk /
      CacheDirLevels 2
      CacheDirLength 1
      CacheDefaultExpire 3600



      ExpiresActive On
      ExpiresByType text/css “access plus 1 week”
      ExpiresByType application/javascript “access plus 1 week”
      ExpiresByType image/jpeg “access plus 1 month”
  • 与插件协同:将插件生成的静态资源与可缓存页面交由 mod_cache_disk 处理;对含 PHPSESSIDwordpress_logged_in 等标识的请求返回 pass,避免缓存登录/管理页。
  • 验证:curl -I 查看 Cache-Control/Expires 头是否生效。

PHP 与应用层缓存配合

  • OPcache(必开):加速 PHP 字节码执行,建议生产配置:
    [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
  • 对象/页面片段缓存:
    • 安装 Redis:sudo apt install redis-server;PHP 扩展:sudo apt install php-redis(或 php-memcached)。
    • 在插件中启用 Redis/Memcached 对象缓存(如 WordPress 的 Redis Object Cache 插件),将数据库查询结果、侧栏片段、Transients 等放入内存。
  • 会话存储:将 session.save_handler=memcached/redis,减少本地文件锁与磁盘 I/O。

将插件缓存放入内存 tmpfs 提升速度

  • 适用:磁盘 I/O 成为瓶颈、插件生成大量小文件(如 /wp-content/cache)。
  • 做法:
    1. 创建目录并挂载到 tmpfs(重启后不持久,适合缓存):
      sudo mkdir -p /dev/shm/example.com
      sudo chmod 1777 /dev/shm/example.com
      sudo mount --bind /dev/shm/example.com /var/www/example.com/wp-content/cache
    2. 验证:df -h 应看到 tmpfs 占用增长;注意内存大小,避免 OOM。
    3. 如需持久化,可写入 /etc/fstab:/dev/shm/example.com /var/www/example.com/wp-content/cache none bind 0 0。
  • 风险提示:tmpfs 数据在重启后消失,仅用于缓存,不影响站点可用性。

WordPress 实战配置示例

  • 架构组合:Nginx 反向代理 + Varnish 全页缓存 + W3 Total Cache(页面缓存:磁盘;对象缓存:Redis;浏览器缓存:开启) + OPcache + Redis/Memcached
  • Nginx 示例(承接 Varnish 或应用):
    location ~* ^/wp-content/cache/ { expires 7d; add_header Cache-Control “public, must-revalidate”; }
    location ~ .php$ { include fastcgi_params; fastcgi_pass unix:/var/run/php/php8.1-fpm.sock; }
  • Varnish VCL 片段(对登录态与表单不缓存):
    if (req.http.Cookie ~ “wordpress_logged_in|comment_author|wp-postpass|wordpress_test_cookie”) { return (pass); }
    if (req.method != “GET” & & req.method != “HEAD”) { return (pass); }
  • 验证与观察:
    • 响应头:curl -I 应见 Cache-Control/Expires(静态资源)与 X-Cache/Varnish(命中与否)。
    • 监控:varnishstat/redis-cli info,插件“缓存命中率”面板,后端响应时间与 5xx 错误率。
    • 维护:变更内容后主动清理插件与 Varnish 缓存;上线灰度验证,确保登录/支付/评论等流程不受影响。

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


若转载请注明出处: ubuntu缓存如何与缓存插件配合使用
本文地址: https://pptw.com/jishu/781960.html
ubuntu cpustat怎样查看进程信息 ubuntu缓存对移动端有何影响

游客 回复需填写必要信息