有人可以解释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类型文件)。
谢谢, 吨。
答案 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和缓存键中使用相同的基目录名称。