如何在nginx中使用纯``chinese`键?

时间:2017-05-10 05:31:39

标签: caching nginx

我在nginx conf中找到了这一行,省略了其他行

location /{
    uwsgi_cache_key $request_uri;
}

和纯粹的部分

location ~ /_purge(/.*$){
    uwsgi_cache_purge  mycache $1;
}

适用于http://host/testhttp://host/_purge/test等网址 但http://host/测试http://host/_purge/测试

无法清除带有缓存的http://host/_purge/%E6%B5%8B%E8%AF%95

如何清除http://host/测试缓存?

1 个答案:

答案 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;
}