我在nginx conf
中找到了这一行,省略了其他行
location /{
uwsgi_cache_key $request_uri;
}
和纯粹的部分
location ~ /_purge(/.*$){
uwsgi_cache_purge mycache $1;
}
适用于http://host/test
和http://host/_purge/test
等网址
但http://host/测试
或http://host/_purge/测试
http://host/_purge/%E6%B5%8B%E8%AF%95
如何清除http://host/测试
缓存?
答案 0 :(得分:0)
nginx中的var $request_uri
实际上是url编码的
所以缓存的密钥是/%E6%B5%8B%E8%AF%95
但是对http://host/_purge/测试
或http://host/_purge/%E6%B5%8B%E8%AF%95
的请求是否相同。在比赛/_purge(/.*$)
之后,他们被淘汰了。 $1
实际上是/测试
所以我们无法清除缓存。
<强>求解:强>
需要额外的模块:https://github.com/openresty/set-misc-nginx-module#installation
location /{
set_unescape_uri $key $request_uri;
uwsgi_cache_key $key;
}