uwsgi如何缓存非文本/ html内容?

时间:2016-03-13 19:42:00

标签: uwsgi

有人可以解释the uwsgi docs的以下代码段是如何工作的吗?

cache2 = name=mycache,items=100
; load the mime types engine
mime-file = /etc/mime.types

; at each request starting with /img check it in the cache (use mime types engine for the content type)
route = ^/img/(.+) cache:key=/img/$1,name=mycache,mime=1

; at each request ending with .css check it in the cache
route = \.css$ cache:key=${REQUEST_URI},name=mycache,content_type=text/css

; fallback to text/html all of the others request
route = .* cache:key=${REQUEST_URI},name=mycache

; store each successful request (200 http status code) in the 'mycache' cache using the REQUEST_URI as key
route = .* cachestore:key=${REQUEST_URI},name=mycache

由于$ {REQUEST_URI}用于存储缓存中的所有内容,但只有$ {REQUEST_URI}的一部分用于检查缓存中的图像,这应该如何工作?我使用log:routing目标输出$ {REQUEST_URI},它等于从第一次/每次开始的完整请求。

我的设置中的类似内容不起作用(我使用/usr/local/etc/nginx/mime.types作为mime类型文件)。

谢谢, 吨。

1 个答案:

答案 0 :(得分:1)

仔细看看这一行:

route = ^/img/(.+) cache:key=/img/$1,name=mycache,mime=1

它将捕获/img/目录中的所有文件请求,并在变量/img/中保存相对于$1的路径。现在它要求密钥/img/$1的缓存,因此它会在保存路径的开头粘贴/img/

对于文件/img/my_logo.png,它将保存" my_logo.png"在$1变量中,它将粘合" / img /"在保存路径的开头,最后,它将查询/img/my_logo.png

基本上,它会重新创建REQUEST_URI。因此,如果它不适合您,请确保您在regex和缓存键中使用相同的基目录名称。