Tentando bloquear solicitações de spam no nginx

Tentando bloquear solicitações de spam no nginx

Tenho inúmeras solicitações de spam nos logs de acesso/erro do nginx, como:

/bcaashop/collections/new-era-new-era-indiana-pacers-nba-940-a-frame-snapback-black

que estou bloqueando desta forma:

if ($query_string ~ "\b(bca*.shop|nike|adidas)\b") { set $block_spam 1; } if ($block_spam = 1) { return 444; }

Mas se a solicitação terminar em .json- por exemplo:

/bcaashop/collections/new-era-new-era-indiana-pacers-nba-940-a-frame-snapback-black.json

ocorrerá um erro 404 em error.log, preenchendo-o com esses erros de solicitações semelhantes.

Suspeito que isso se deva à seguinte regra:

location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|ttf|json|otf)$ { add_header Cache-Control "public"; expires 7d; }

que contém json e substitui a regra acima. Tentei alterar a ordem das regras, mas ainda recebo 404 em vez de 444.

Como bloquear as solicitações com json corretamente? Qualquer dica é apreciada.

informação relacionada