Nginx,memcached和cakephp:memcached模块总是错过缓存

前端之家收集整理的这篇文章主要介绍了Nginx,memcached和cakephp:memcached模块总是错过缓存前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个简单的Nginx配置;

server{
  servername localhost;
  root /var/www/webroot;

  location / {
    set_md5  $memcached_key $uri;
    index  index.PHP index.html;
    try_files $uri $uri/ @cache;
  }

  location @cache  {
    memcached_pass localhost:11211;
    default_type text/html;
    error_page 404  @fallback;
  }

  location @fallback{
    try_files $uri $uri/ /index.PHP?url=$uri&$args;
  }

  location ~ \.PHP${
    fastcgi_param MEM_KEY $memcached_key;
    include /etc/Nginx/fastcgi.conf;
    fastcgi_index  index.PHP;
    fastcgi_intercept_errors on;
    fastcgi_pass unix:/var/run/PHP5-fpm.sock;
  }
}

我有一个CakePHP助手,它使用MEM_KEY参数将视图保存到memcached中.我已经测试了它并且它正在工作,但是,Nginx总是会进入@fallback方向.我该如何解决此问题?可能会出现问题吗?

最佳答案
感谢DukeLion的评论,我终于可以找到发生了什么,Nginx正在进入memcached服务器okey,但是cakePHP正在改变密钥.

例如,我尝试访问/home_page.html

Nginx使用/home_page.html进入内存缓存,不要找到它,因此加载cakePHP,cakePHP生成视图并将其保存在密钥_home__page_html中

解决方案是扩展memcached cakePHP引擎.

谢谢!!!

pd:您可以在http://andy-gale.com/cakephp-view-memcache.html获取memcached视图引擎的示例

猜你在找的Memcache相关文章