nginx下使用memcache


nginx配置支持memcache,但不支持写,支持读,所以读取部分由程序设置,整个代码如下

nginx的server段配置如下:

#将静态文件放入memcache

location ~* \.(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
                root /usr/share/nginx/html;
                set $memcached_key $uri;
                memcached_pass 127.0.0.1:11211;
                error_page 404 = @goto404;
        }

#从后端程序设置缓存
        location @goto404{
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$fastcgi_script_name;
                include        fastcgi_params;
                rewrite ^(.*)? /goto.php?q=$1 break;
        }


goto.php源码如下:
define("PUBLIC_DIR", '/usr/share/nginx/html');
$file = $_GET['q'];

if( file_exists( PUBLIC_DIR . $file ) ){
    $memcache = new Memcache;
    $memcache->addserver("127.0.0.1", 11211);
    $value = file_get_contents( PUBLIC_DIR . $file );
    $memcache->set($file, $value, 0, 60000);
    header("Location: {$file}");
    
}else{
    header("Status: 404 Not Found");    
}

posted @ 2013-09-20 11:41  rorshach  阅读(200)  评论(0编辑  收藏  举报