Memcached#
该模块用于从 memcached 服务器获取响应。键在 $memcached_key 变量中设置。响应应该通过外部手段预先放入 memcached 中。
配置示例#
server {
location / {
set $memcached_key "$uri?$args";
memcached_pass host:11211;
error_page 404 502 504 = @fallback;
}
location @fallback {
proxy_pass http://backend;
}
}
指令#
memcached_bind#
使到 memcached 服务器的外发连接从指定的本地 IP 地址发起,带有可选的端口。参数值可以包含变量。特殊值 off
取消从上一级配置继承的 memcached_bind 指令的效果,这允许系统自动分配本地 IP 地址和端口。
transparent
参数允许到 memcached 服务器的外发连接从非本地 IP 地址发起,例如,从客户端的真实 IP 地址发起:
memcached_bind $remote_addr transparent;
为了使此参数生效,通常需要以 超级用户 权限运行 Angie 工作进程。在 Linux 上,如果指定了 transparent
参数,则不需要此操作,因为工作进程从主进程继承 CAP_NET_RAW 能力。
重要
必须配置内核路由表以截获来自 memcached 服务器的网络流量。
memcached_buffer_size#
设置用于读取从 memcached 服务器接收到的响应第一部分的缓冲区大小。响应一接收到就同步传递给客户端。
memcached_connect_timeout#
定义与 memcached 服务器建立连接的超时时间。需要注意的是,此超时时间通常不能超过 75 秒。
memcached_gzip_flag#
启用测试 memcached 服务器响应中的标志,并在标志设置时将响应头的 "Content-Encoding" 字段设置为 "gzip"。
memcached_next_upstream#
|
|
默认值 |
|
http, server, location |
指定在何种情况下请求应传递给 上游池 中的下一个服务器:
|
在与服务器建立连接、传递请求或读取响应头时发生错误; |
|
在与服务器建立连接、传递请求或读取响应头时发生超时; |
|
服务器返回空或无效响应; |
|
在服务器上未找到响应; |
|
禁止请求传递给下一个服务器。 |
备注
应记住,只有在尚未向客户端发送任何内容时,才能将请求传递给下一个服务器。也就是说,如果在响应传输过程中发生错误或超时,则无法解决。
该指令还定义了与服务器通信的 不成功尝试 的标准。
|
总是被视为不成功尝试,即使它们未在指令中指定 |
|
从不被视为不成功尝试 |
memcached_next_upstream_timeout#
|
|
默认值 |
|
http, server, location |
限制请求可以传递到 下一个 服务器的时间。
|
关闭此限制 |
memcached_next_upstream_tries#
|
|
默认值 |
|
http, server, location |
限制请求传递到 下一个 服务器的尝试次数。
|
关闭此限制 |
memcached_pass#
设置 memcached 服务器地址。地址可以指定为域名或 IP 地址,以及端口:
memcached_pass localhost:11211;
或者指定为 UNIX 域套接字路径:
memcached_pass unix:/tmp/memcached.socket;
如果一个域名解析为多个地址,它们将以轮循方式使用。此外,地址可以指定为 服务器组。如果使用组,则不能为其指定端口;相反,应为组内的每个服务器分别指定端口。
memcached_read_timeout#
定义从 memcached 服务器读取响应的超时时间。超时时间仅在两次连续读取操作之间设置,而不是用于整个响应的传输。如果 memcached 服务器在此时间内没有传输任何内容,则连接将关闭。
memcached_send_timeout#
设置向 memcached 服务器传输请求的超时时间。超时时间仅在两次连续写入操作之间设置,而不是用于整个请求的传输。如果 memcached 服务器在此时间内没有接收到任何内容,则连接将关闭。
memcached_socket_keepalive#
|
|
默认值 |
|
http, server, location |
配置到 memcached 服务器的外发连接的 "TCP keepalive" 行为。
|
默认情况下,操作系统的设置对套接字有效。 |
|
为套接字打开 SO_KEEPALIVE 套接字选项。 |
内置变量#
$memcached_key
#
定义从 memcached 服务器获取响应的键。