memc_pass
'memc_pass' 指令将请求发送到指定的 memcached 服务器以进行数据存储操作。
Extended version of the standard NGINX memcached module
·
locationif in location
语法memc_pass address;
默认值none
上下文location, if in location
参数1
说明
'memc_pass' 指令用于定义将要转发请求的 memcached 后端服务器。该指令在 NGINX 配置中作用于 location 和 if 上下文,允许根据各种条件对请求进行高度灵活的路由。当请求被处理时,指令期望在调用之前已设置 memc_key 用以标识所访问的具体缓存条目。根据传入请求的 HTTP 方法,指令会自动确定要使用的 memcached 命令,这些命令可以包括 'get'、'set'、'add' 或 'delete'。这种动态调整对于高效处理不同操作至关重要,无需为每个命令提供额外配置。
该指令需要一个参数,即 memcached 服务器的地址,通常为 '127.0.0.1:11211'。当请求到达 memc_pass 指令时,它会与指定的 memcached 服务器建立连接并发送由 HTTP 方法决定的相应命令。如果满足所有条件,NGINX 会处理来自 memcached 服务器的响应,或者检索请求的数据、存储新数据,或者按照命令执行删除操作。此外,该指令与 'ngx_http_memc_module' 定义的变量密切配合,这些变量增强了缓存操作的管理,并允许基于请求参数对缓存行为进行更细粒度的控制。
配置示例
location /cache {
set $memc_key $arg_key;
memc_pass 127.0.0.1:11211;
}⚠
确保在调用 'memc_pass' 之前适当设置 'memc_key' 变量,否则请求可能会失败。
⚠
在使用 'memc_pass' 时要小心,若使用与预期 memcached 命令不匹配的方法(例如不受支持的 HTTP methods),可能会出现问题。