nginx에서 스팸 요청을 차단하려고 합니다.

nginx에서 스팸 요청을 차단하려고 합니다.

nginx 액세스/오류 로그에 다음과 같은 수많은 스팸 요청이 있습니다.

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

나는 이런 식으로 차단하고 있습니다 :

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

그러나 요청이 다음으로 끝나는 경우 .json- 예를 들어:

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

error.log에 404 오류가 발생하여 유사한 요청 오류로 채워집니다.

나는 이것이 다음 규칙 때문이라고 생각합니다.

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

이는 json을 포함하고 위의 규칙을 재정의합니다. 규칙 순서를 변경하려고 했지만 여전히 444 대신 404가 표시됩니다.

json으로 요청을 올바르게 차단하는 방법은 무엇입니까? 어떤 팁이라도 감사하겠습니다.

관련 정보