Memcached#
该模块用于从 memcached 服务器获取响应。键在 $memcached_key 变量中设置。响应应该通过 Angie 外部的方式预先放入 memcached。 使到 memcached 服务器的出站连接源自指定的本地 IP 地址和可选端口。参数值可以包含变量。特殊值 为了使此参数生效,通常需要以 超级用户 权限运行 Angie 工作进程。在 Linux 上不需要这样做,因为如果指定了 备注 需要配置内核路由表以拦截来自 memcached 服务器的网络流量。 设置用于读取从 memcached 服务器接收的响应的第一部分的缓冲区大小。响应在接收后立即同步传递给客户端。 定义与 memcached 服务器建立连接的超时时间。需要注意的是,此超时时间通常不能超过 75 秒。 启用对 memcached 服务器响应中标志存在的测试,如果设置了该标志,则将 默认值 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#
Content-Encoding 响应头字段设置为 "gzip"。memcached_next_upstream#
memcached_next_upstream error | timeout | invalid_response | not_found | off ...;memcached_next_upstream error timeout;errortimeoutinvalid_responsenot_foundofferror、timeout、invalid_responsenot_foundmemcached_next_upstream_timeout#
memcached_next_upstream_timeout time;memcached_next_upstream_timeout 0;0memcached_next_upstream_tries#
0memcached_pass#
memcached_pass localhost:11211;
memcached_pass unix:/tmp/memcached.socket;
memcached_read_timeout#
memcached_send_timeout#
memcached_socket_keepalive#
offon内置变量#
$memcached_key#