nginx+memcached 构建页面缓存应用

         nginx memcached是一个使用内存来为访问页面加速的模块,当客户端请求到达nginx服务器时,nginx会先通过键值(比如说uri),去访问memcached服务器,当能从memcached服务器获取到数据时,会直接将数据封装,返回给客户端,否则,则继续访问相关服务如php,从相关应用获取到内容发送给客户端,同时由相关应用主动将内容写入到memcached服务器,以便下次访问时能起到加速的效果。

        nginx memcached模块与memcached服务器之间的交互是通过nginx的upstream机制来进行的。应注意官方的memcached模块只有访问读取memcached服务器的能力,而没有将内容写入到memcached服务器的能力,某些第三方模块则有此功能。

server {

listen       80;

server_name  172.25.254.1;

root html;

index test.html;

#location /memc {
#internal;
#memc_connect_timeout 100ms;

#memc_send_timeout 100ms;
#memc_read_timeout 100ms;
#set $memc_key $query_string;
#set $memc_exptime 300;
#memc_pass memcache;
#}

location ^~ /images/ {
    set $memcached_key  "$uri"; #用URI作为key去memcached中去读取内容
    memcached_pass      127.0.0.1:11211;
    memcached_connect_timeout 5s;
    memcached_read_timeout 5s;
    memcached_send_timeout 5s;
    memcached_buffer_size 32k;
    error_page    404 502 504 =  172.25.254.2;
}

location ~* \.(gif|jpg|jpeg|png|bmp|swf|js|css)$ {

set $memcached_key $uri;

default_type     text/html;

memcached_pass    172.25.254.1:11211;

#memchaced服务器在172.25.254.1上面,访问该uri时,先去该服务器去取资源,取不到时跳转到172.25.254.2的分支去处理

error_page 404 = 172.25.254.2; //当发生404错误时,重定向到172.25.254.2去处理

}

location 172.25.254.2 {

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

include fastcgi.conf;

rewrite ^(.*)? /goto.php?q=$1 break;

}

}

nginx+memcached 构建页面缓存应用_第1张图片

你可能感兴趣的:(nginx+memcached 构建页面缓存应用)