Versuch, Spam-Anfragen in Nginx zu blockieren

Versuch, Spam-Anfragen in Nginx zu blockieren

Ich habe zahlreiche Spam-Anfragen in den Nginx-Zugriffs-/Fehlerprotokollen wie:

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

die ich folgendermaßen blockiere:

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

.jsonWenn die Anfrage jedoch beispielsweise wie folgt endet :

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

Es wird ein 404-Fehler im error.log ausgegeben und das Protokoll mit den folgenden ähnlichen Anforderungsfehlern gefüllt.

Ich vermute, dass dies an der folgenden Regel liegt:

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

das JSON enthält und die obige Regel überschreibt. Ich habe versucht, die Reihenfolge der Regeln zu ändern, aber ich erhalte immer noch 404 statt 444.

Wie blockiere ich Anfragen mit JSON richtig? Jeder Tipp ist willkommen.

verwandte Informationen