示例配置
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在此期间没有收到任何数据,连接将关闭。
内嵌变量