模块 ngx_http_memcached_module
该模块用于获取
来自 Memcached 服务器的响应。
键在变量中设置。
响应应该通过以下方式提前放入 memcached 中
在 nginx 外部。ngx_http_memcached_module
$memcached_key
示例配置
server { location / { set $memcached_key "$uri?$args"; memcached_pass host:11211; error_page 404 502 504 = @fallback; } location @fallback { proxy_pass http://backend; } }
Directives
语法: |
memcached_bind
|
---|---|
默认值: | — |
上下文: |
http , ,server location |
该Directives出现在版本 0.8.22 中。
使到 memcached 服务器的传出连接发起
从具有可选端口 (1.11.2) 的指定本地 IP 地址。
参数值可以包含变量 (1.3.12)。
特殊值 (1.3.12) 取消 effect
Directives
继承自之前的配置级别,这允许
系统自动分配本地 IP 地址和端口。off
memcached_bind
参数 (1.11.0) 允许
到 Memcached 服务器的传出连接源自
来自非本地 IP 地址,
例如,从客户端的真实 IP 地址:transparent
memcached_bind $remote_addr transparent;
为了使此参数起作用,
通常需要使用超级用户权限运行 nginx 工作进程。
在 Linux 上,它不是必需的 (1.13.8),就像
参数为 Worker processes
从 master 进程继承能力。
还需要配置内核路由表
拦截来自 Memcached 服务器的网络流量。transparent
CAP_NET_RAW
语法: |
memcached_buffer_size |
---|---|
默认值: |
memcached_buffer_size 4k|8k; |
上下文: |
http , ,server location |
设置用于读取响应的缓冲区
从 Memcached 服务器接收。
收到响应后,会立即同步传递给客户端。size
语法: |
memcached_connect_timeout |
---|---|
默认值: |
memcached_connect_timeout 60s; |
上下文: |
http , ,server location |
定义与 memcached 服务器建立连接的超时。 应该注意,此超时通常不能超过 75 秒。
语法: |
memcached_gzip_flag |
---|---|
默认值: | — |
上下文: |
http , ,server location |
该Directives出现在版本 1.3.6 中。
启用 memcached 中是否存在的测试
server 响应并将 “”
响应标头字段设置为 “”
如果设置了标志。flag
Content-Encoding
gzip
语法: |
memcached_next_upstream
|
---|---|
默认值: |
memcached_next_upstream error timeout; |
上下文: |
http , ,server location |
指定在哪些情况下应将请求传递到下一个服务器:
error
- 与 server、向其传递请求或读取响应标头;
timeout
- 与 server、向其传递请求或读取响应标头;
invalid_response
- 服务器返回空响应或无效响应;
not_found
- 在服务器上找不到响应;
off
- 禁止将请求传递到下一个服务器。
应该记住,将请求传递给下一个服务器是 仅当尚未向客户端发送任何内容时才有可能。 也就是说,如果在 传输响应,则无法修复此问题。
该Directives还定义了什么被视为不成功
尝试与服务器通信。
的情况 , 和 始终被视为不成功的尝试,
即使它们未在Directives中指定。
这种情况永远不会被视为不成功的尝试。error
timeout
invalid_response
not_found
语法: |
memcached_next_upstream_timeout |
---|---|
默认值: |
memcached_next_upstream_timeout 0; |
上下文: |
http , ,server location |
该Directives出现在版本 1.7.5 中。
限制可以将请求传递到下一个服务器的时间。
该值会关闭此限制。0
语法: |
memcached_next_upstream_tries |
---|---|
默认值: |
memcached_next_upstream_tries 0; |
上下文: |
http , ,server location |
该Directives出现在版本 1.7.5 中。
限制将请求传递到下一个服务器的可能尝试次数。
该值会关闭此限制。0
语法: |
memcached_pass |
---|---|
默认值: | — |
上下文: |
location ,if in location |
设置 memcached 服务器地址。 地址可以指定为域名或 IP 地址, 和一个端口:
memcached_pass localhost:11211;
或作为 UNIX 域套接字路径:
memcached_pass unix:/tmp/memcached.socket;
如果一个域名解析为多个地址,则所有地址都将是 以循环方式使用。 此外,还可以将地址指定为服务器组。
语法: |
memcached_read_timeout |
---|---|
默认值: |
memcached_read_timeout 60s; |
上下文: |
http , ,server location |
定义从 memcached 服务器读取响应的超时。 超时仅在两个连续的读取作 ( 而不是为了传输整个响应。 如果 memcached 服务器在此时间内没有传输任何内容,则 连接已关闭。
语法: |
memcached_send_timeout |
---|---|
默认值: |
memcached_send_timeout 60s; |
上下文: |
http , ,server location |
设置向 memcached 服务器发送请求的超时时间。 超时仅在两个连续的写入作 ( 而不是为了传输整个请求。 如果 memcached 服务器在此时间内没有收到任何内容,则 连接已关闭。
语法: |
memcached_socket_keepalive |
---|---|
默认值: |
memcached_socket_keepalive off; |
上下文: |
http , ,server location |
该Directives出现在版本 1.15.6 中。
配置 “TCP keepalive” 行为
用于 Memcached 服务器的传出连接。
默认情况下,作系统的设置对套接字有效。
如果Directives设置为值 “”,则为套接字打开套接字选项。on
SO_KEEPALIVE
嵌入变量
$memcached_key
- 定义用于从 memcached 服务器获取响应的密钥。