Site icon 时鹏亮的Blog

Nginx proxy_cache_key 过滤某些参数如何实现

请知悉:本文最近一次更新为 7年 前,文中内容可能已经过时。

嗯,这个问题搜起来还挺费劲的,还好谷歌上尝试了几个搜索关键词,找到了有价值的参考,配置是删除不必要的推广参数然后做为缓存的key。

proxy_cache_key默认值为:

proxy_cache_key $scheme$proxy_host$uri$is_args$args;

示例代码如下:

set $c_uri $args; # e.g. "param1=true&param4=false"

if ($c_uri ~ (.*)(?:&|^)utm_source=[^&]*(.*)) {
set $c_uri $1$2;
}

if ($c_uri ~ (.*)(?:&|^)utm_term=[^&]*(.*)) {
set $c_uri $1$2;
}

if ($c_uri ~ (.*)(?:&|^)utm_campaign=[^&]*(.*)) {
set $c_uri $1$2;
}

if ($c_uri ~ (.*)(?:&|^)utm_medium=[^&]*(.*)) {
set $c_uri $1$2;
}

if ($c_uri ~ (.*)(?:&|^)utm_content=[^&]*(.*)) {
set $c_uri $1$2;
}

if ($c_uri ~ ^&(.*)) {
set $c_uri $1;
}

set $c_uri $is_args$c_uri;
proxy_cache_key $c_uri;

代码摘录自:https://gist.github.com/a-vasyliev/de8ffc6c6aa74cdeadfe

总体核心就是处理好参数,最终设置即可。

同样原理,对fastcgi_cache_key应该也是通用的。


如您从本文得到了有价值的信息或帮助,请考虑扫描文末二维码捐赠和鼓励。

尊重他人劳动成果。转载请务必附上原文链接,我将感激不尽。


与《Nginx proxy_cache_key 过滤某些参数如何实现》相关的博文:

Exit mobile version