Memcached是高性能的分布式内存缓存服务器。通常的使用目的是,经过缓存数据库查询结果,减小数据库访问次数,以提升动态Web应用的速度、提升可扩展性。 数据库
在Nginx中, Memcached模块默认是开启的,它负责与memcached守护进程通讯。所以,客户端和memcached守护进程之间没有直接通讯,也就是说,在这种状况下,Nginx再也不是充当反向代理。memcached模块使得Nginx能够使用memcached协议会话,所以,key的查询可以在请求传递到上游应用服务器以前完成。缓存
upstream memcaches { # 定义memcached上游服务器池 server 10.20.21.10:11211; server 10.20.21.11:11211; server 10.20.21.12:11211; } server { location / { set $memcached_key "$uri?$args"; # 进行查找 memcached_pass memcaches; error_page 404=@server; #没有查找到,则转发给@server处理,并保存处理后的值 } location @server { proxy_pass http://127.0.0.1:80; } }
经过memcached_pass指令使用$memcached_key变量实现key值的查找,若是memcached中没有查找到,则执行404处定义的@server来处理,这样子将请求转发到127.0.0.1:80来处理该请求,而且还会在memcached实例中插入该键/值对。服务器