Способы борьбы с nginx cache pollution

Gena Makhomed gmm на csdoc.com
Пт Ноя 26 19:16:10 UTC 2021


Здравствуйте, All!

Можно ли настроить nginx + njs таким образом, чтобы некоторые
get-параметры он вырезал из запроса перед передачей их на backend?

например,

?utm_source=instagram&utm_medium=hipolink&utm_campaign=slidebutton
?gclid=CjwKCAiAqIKNBhAIEiwAu_ZLDrzAZL_PrmbGRP-cyi5liGx-lMu3oapGZ
?fbclid=PAAaYJCb3hTyRmuCIZaobrn3WTbdwhYZq2c6oXVoHCqB1fcRj18jJCqS

и т.п.

backend - это php-fpm, доступ через сокет:

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

видел как это программируют на конфигах nginx с помощью директивы map:

https://serverfault.com/a/1062189

- но это наверное есть не самый оптимальный способ?

может быть кто-то это уже делал с помощью njs
и может поделиться примером кода?

С другой стороны - feature эта полезная будет всем,
кто пользуется nginx cache, поэтому может быть имеет смысл
запрограммировать эту feature прямо на C и сделать доступной
конфигурированию с помощью директив в конфиге, например,

fastcgi_cache_ignore_args utm_* gclid fbclid;

эти utm_* gclid fbclid и им подобные
ощутимо уменьшают эффективность кеша nginx.

MISS    /pagination/collection/sale?fbclid=PAAabJiB...
MISS    /collection/sale?gclid=CjwKCAiAqIKNBhAEiwAu...

-- 
Best regards,
  Gena


Подробная информация о списке рассылки nginx-ru