nginx中文文档-ngx_http_memcached_module

此页面版本:2016-06-08
ngx_http_memcached_module模块用于接收memcached服务器的响应。关键字设置在$memcached_key变量中。响应应该事先通过外部nginx放在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_bind address [transparent] | off
默认:—
上下文:http, server, location
版本:0.8.22+

指定的本地IP地址发起到memcached服务器建立外部连接。参数可包含变量(1.3.12+)。特殊值off(1.3.12+)取消继承于上层memcached_bind指令的影响,允许系统自动分配本地IP地址。
transparent参数(1.11.0+)从一个非本地IP地址发起到memcached服务器的外部连接,例如从一个真实的客户端IP地址:
memcached_bind $remote_addr transparent
为使该参数生效,需要以超级用户的身份运行nginx进程,并配置路由表阻断来自memcached服务器的网络流量。

memcached_buffer_size

语法:memcached_buffer_size size
默认:memcached_buffer_size 4k|8k
上下文:http, server, location

设置用于读取来自memcached服务器响应的缓冲区大小。响应会在接收后同步的传给客户端。

memcached_connect_timeout

语法:memcached_connect_timeout time
默认:memcached_connect_timeout 60s
上下文:http, server, location

定义与memcached服务器建立连接的超时时间。注意超时时间通常不超过75秒。

memcached_force_ranges

语法:memcached_force_ranges on | off
默认:memcached_force_ranges off
上下文:http, server, location
版本:1.7.7+

启用同时为缓存和不缓存的来自于memcached服务器的响应而忽略“Accept-Ranges”响应头域的byte-range功能支持。

memcached_gzip_flag

语法:memcached_gzip_flag flag
默认:—
上下文:http, server, location
版本:1.3.6+

启用测试flags的值,如果memcached服务器返回该值,则在响应头中添加“Content-Encoding”值“gzip”。

memcached_next_upstream

语法:memcached_next_upstream error | timeout | invalid_response | not_found | off …
默认:memcached_next_upstream error timeout
上下文:http, server, location

定义在哪种情况下请求会传给下一个服务器:
error
当与服务器建立连接、发送请求或读取响应头时出错

timeout
当与服务器建立连接、发送请求或读取响应头时超时

invalid_response
服务器返回响应空或无效的响应

not_found
响应在服务器上找不到

off
关闭传递给下一个服务器的功能

请求只有在还未传给客户端的情况下可以传到下一个服务器上。也就是说,当响应传输过程中发生错误或超时,是无法得到修正的。
指令同时定义了哪种情况会认为是与服务器连接不成功的尝试,error, timeout 和invalid_header总会被认为是不成功的尝试,即使它们没有定义在指令中。not_found从不会被认为是失败的尝试。

memcached_next_upstream_timeout

语法:memcached_next_upstream_timeout time
默认:memcached_next_upstream_timeout 0
上下文:http, server, location
版本:1.7.5+

设置时间限制,在此期间请求可以传给下一个服务器。0值关闭这个限制。

memcached_next_upstream_tries

语法:memcached_next_upstream_tries number
默认:memcached_next_upstream_tries 0
上下文:http, server, location
版本:1.7.5+

设置尝试传递请求到下一个服务器的次数限制。0值关闭这个限制。

memcached_pass

语法:memcached_pass address
默认:—
上下文:location, if in location

设置memcached服务器地址。地址可以定义为一个域名或IP和端口:
memcached_pass localhost:11211;
或UNIX-domain socket路径:
memcached_pass unix:/tmp/memcached.socket;
如果一个域名解析为多个地址,它们将通过轮询方式使用。另外地址可以定义为服务器组。

memcached_read_timeout

语法:memcached_read_timeout time
默认:memcached_read_timeout 60s
上下文:http, server, location

定义从memcached服务器读取响应的超时时间。超时的设置只应用于两个成功的读操作之间,并不是整个响应的传输。如果memcached服务器在此期间没有传送任何数据,连接将关闭。

memcached_send_timeout

语法:memcached_send_timeout time
默认:memcached_send_timeout 60s
上下文:http, server, location

设置传输请求到memcached服务器的超时时间。超时时间作用于两次成功的写操作,而不是整个请求的传输。如果memcached在此期间没有收到任何数据,连接将关闭。

内嵌变量


$memcached_key
定义一个关键字用于从memcached服务器接收响应。

nginx中文文档-ngx_http_map_module

ngx_http_map_module模块创建依赖于其他变量值的变量。

示例配置

map $http_host $name {
    hostnames;

    default       0;

    example.com   1;
    *.example.com 1;
    example.org   2;
    *.example.org 2;
    .example.net  3;
    wap.*         4;
}

map $http_user_agent $mobile {
    default       0;
    "~Opera Mini" 1;
}

map

语法:map string $variable { … }
默认:—
上下文:http

创建一个值依赖于第一个参数定义的变量值的变量。
在0.9.0版本之前,第一个参数只可定义一个变量。
由于变量只有在使用时取值,定义很多“map”变量并不会对请求的处理增加任何额外的开销。
在map块中的参数定义了一个源到结果的映射值。
源值定义为字符串或正则表达式(0.9.6+)
字符串匹配忽略大小写。
正则表达式可以以“~”标识开头表示大小写敏感,也可以以“~*”标识(1.0.4+)开头表示大小写不敏感。正则表达式可以包括名称和位置捕获,可在其他的指令中使用。
如果原值匹配下面描述的特殊参数名称之一,应该用“\”前缀。
结果值可以是字符串或另一个变量(0.9.0+)
指令可以支持三个特殊参数:
default value
设置当原值都不匹配时的结果值。当default没有定义时,默认的结果值是一个空字符串。

hostnames
声明原值可以是带前缀或后缀的主机名:

*.example.com 1;
example.*     1;

下面两条记录:

example.com   1;
*.example.com 1;

可以合并为;
.example.com 1;
参数需要定义在值列表之前。

include file
包含带有值的文件。可以包含多个文件。

如果原值匹配不止一个指定的变量,例如同时匹配*和正则表达式,先匹配的变量将被选中,遵循下面的优先级顺序:

  1. 没有*的
  2. 前缀匹配最长,如“*.example.com”
  3. 后缀匹配最长,如“mail.*”
  4. 最先匹配的正则表达式(按出现在配置文件中的先后顺序)
  5. 默认值

map_hash_bucket_size

语法:map_hash_bucket_size size
默认:map_hash_bucket_size 32|64|128
上下文:http

设置映射变量哈希表桶的大小。默认大小取决于处理器的缓存行大小。

map_hash_max_size

语法:map_hash_max_size size
默认:map_hash_max_size 2048
上下文:http

设置映射变量哈希表的总大小。