Nginx配置srcache_nginx模块搭配Redis建立缓存系统

2019-10-17 19:44:09丽君

4. 测试
没有做缓存状态:

2016125100430837.jpg (814×298)

有做缓存状态:

2016125100540105.jpg (799×276)

5. 响应头状态
第一次请求:

2016125100621977.jpg (699×257)

再次请求:

2016125100645059.jpg (650×230)

6. 查看redis是否缓存以及过期时间

2016125101036633.jpg (545×60)

PS:srcache-nginx-module模块指令说明:
srcache_fetch
语法:srcache_fetch <method> <uri> <args>?
默认值:no
配置段:http, server, location, location if
查询缓存。返回200说明缓存命中,直接从缓存响应客户端请求。非200需要后端程序处理。
srcache_fetch_skip
语法:srcache_fetch_skip <flag>
默认值:srcache_fetch_skip 0
配置段:http, server, location, location if
<flag>支持nginx变量。当这个参数值不为空和不等于0,则从缓存取数据过程被无条件跳过。
srcache_store
语法:srcache_store <method> <uri> <args>?
默认值:no
配置段:http, server, location, location if
将当前请求的响应存入缓存。可以使用srcache_store_skip和srcache_store_max_size指令禁用缓存。不管是响应状态行,响应头,响应体都会被缓存。默认情况下,下列特殊响应头不会被缓存:

Connection Keep-Alive Proxy-Authenticate Proxy-Authorization TE Trailers Transfer-Encoding Upgrade Set-Cookie

可以使用srcache_store_pass_header、srcache_store_hide_header指令来控制哪些头要缓存哪些不要。

注意:即使所有的响应数据被立即发送,当前的nginx请求生命周期未必完成,直到srcache_store子请求完成。这意味着服务器端延迟关闭TCP连接,或下一个请求服务发送同一个TCP连接。
srcache_store_max_size
语法:srcache_store_max_size <size>
默认值:srcache_store_max_size 0
配置段:http, server, location, location if
当响应体超过该值,将不会缓存。
当后端缓存存储有对缓存数据做硬限制,这个指令非常有用。比如memcached服务器,上限是1M。
默认值0,不限制。
srcache_store_skip
语法:srcache_store_skip <flag>
默认值:srcache_store_skip 0
配置段:http, server, location, location if
<flag>支持nginx变量。当这个参数值不为空和不等于0,则从存入缓存过程被无条件跳过。
srcache_store_statuses
语法:srcache_store_statuses <status1> <status2> ..