帮助中心 >  技术知识库 >  虚拟主机 >  虚拟主机基础知识 >  Nginx使用教程(八):使用Nginx缓存之Memcached缓存

Nginx使用教程(八):使用Nginx缓存之Memcached缓存

2017-03-01 00:22:29 11195

Nginx使用教程(八):使用Nginx缓存之Memcached缓存

使用Memcache



Memcache是一个通用的内存缓存系统。 它通常用于加速缓慢的数据访问。 NGINX memcached模块提供各种指令,可以配置为直接访问Memcache提供内容,从而避免对上游服务器的请求。
除了指令之外,模块还创建$ memcached_key变量,用于执行高速缓存查找。 在使用Memcache查找之前,必须在$memcached_key变量中设置一个值,该变量根据请求URL确定。

memcached_pass



此指令用于指定memcached服务器的位置。 地址可以通过以下任意方式指定:
?域名或IP地址,以及可选端口
?使用带unix:前缀的的Unix域套接字
?使用NGINX upstream指令创建的一组服务器
该指令仅在NGINX配置的location和location if中使用。 如下例子:

  1. location /myloc/{

  2.    set $memached_key $uri;

  3.    memcached_pass localhost:11211;

  4.    }

memcached_connect_timeout / memcached_ send_timeout / memcached_read_timeout



memcached connect_timeout指令设置在NGINX和memcached服务器之间建立连接的超时。
memcached_send_timeout指令设置将请求写入memcached服务器的超时。 memcached_read_timeout指令设置从memcached服务器读取响应的超时。
所有指令的默认值为60秒,可在NGINX配置的http,server和location区块下使用。 如下例子:

  1. http{

  2.    memcached_send_timeout 30s;

  3.    memcached_connect_timeout 30s;

  4.    memcached_read_timeout 30s;

  5.    }

memcached_bind



此指令指定服务器的哪个IP与memcached连接,默认为关闭,即不指定,那么Nginx会自动选择服务器的一个IP用来连接。

完整示例

server{
   location /python/css/ {
   alias "/code/location/css/";
   }
   location /python/ {
   set $memcached_key "$request_method$request_uri";
   charset utf-8;
   memcached_pass 127.0.0.1:11211;
   error_page 404 502 504 = @pythonfallback;
   default_type text/html;
   }
   location @pythonfallback {
   rewrite ^/python/(.*) /$1 break;
 
   proxy_pass http://www.landui.com:5000;
   proxy_set_header X-Cache-Key "$request_method$request_uri";
   }
   # Rest NGINX configuration omitted for brevity
}


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: