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