삭제된 파일에 대한 여러 요청 차단

삭제된 파일에 대한 여러 요청 차단

Nginx에서 Wordpress를 실행하는 서버에 JavaScript 파일을 호스팅했습니다. 파일을 삭제했지만 여전히 여러 추천자로부터 여러 요청이 있습니다. 이러한 리퍼러는 다른 URL과 IP 주소에서 왔습니다.

요청이 너무 많아서 서버 성능에 영향을 미치는 것 같아서 차단하고 싶습니다.

이러한 요청을 차단할 수 있는 방법이 있나요?

답변1

nginx는 더 이상 파일 시스템을 확인할 필요가 없고 410 오류를 보낼 때 필요하지 않기 때문에 이전 javascript의 위치가 더 이상 유효하지 않다고 nginx를 명시적으로 구성하면 성능이 향상될 것이라고 상상합니다. 404 오류 페이지를 보내려면 다음 중 하나를 수행하세요.

location /path/to/script.js {
return 410 ; 
}

HTTP 상태 코드 410: 사라짐

요청한 리소스는 더 이상 서버에서 사용할 수 없으며 전달 주소도 알려져 있지 않습니다. 이 상태는 영구적인 것으로 간주될 것으로 예상됩니다. 링크 편집 기능이 있는 클라이언트는 사용자 승인 후 Request-URI에 대한 참조를 삭제해야 합니다. 서버가 조건이 영구적인지 여부를 알 수 없거나 결정할 수 있는 기능이 없는 경우 상태 코드 404(찾을 수 없음)를 대신 사용해야 합니다. 달리 명시하지 않는 한 이 응답은 캐시 가능합니다.

410 응답은 주로 리소스를 의도적으로 사용할 수 없으며 서버 소유자가 해당 리소스에 대한 원격 링크를 제거하기를 원한다는 사실을 수신자에게 알려 웹 유지 관리 작업을 지원하기 위한 것입니다. 이러한 이벤트는 제한된 시간 동안 진행되는 판촉 서비스 및 더 이상 서버 사이트에서 근무하지 않는 개인에게 속한 리소스에 대해 일반적입니다. 영구적으로 사용할 수 없는 모든 리소스를 "사라짐"으로 표시하거나 일정 기간 동안 표시를 유지할 필요는 없습니다. 이는 서버 소유자의 재량에 달려 있습니다.

답변2

location = /deleted.js {
    default_type    text/plain;
    return      410 "410";
    #access_log off;
}

위와 같이 액세스 로그를 비활성화하거나, 충분히 새로운 nginx를 실행하는 경우 다음을 구성할 수 있습니다.access_log버퍼링을 하려고 합니다. 디스크 액세스는 일반적으로 비용이 많이 들고 속도를 저하시킬 가능성이 높습니다.

return그런데 자동으로 암시를 사용하면 log_not_found off;404를 생성하도록 vfs에 맡기는 것보다 이미 더 낫습니다.

답변3

이는 iptable의 문자열 모듈을 사용하여 http 헤더 내용을 확인하는 아이디어입니다. 물론 특별한 경우에 맞게 조정해야 합니다.http://spamcleaner.org/en/misc/w00tw00t.html

그러나 들어오는 모든 패킷을 검사하고 웹 서버에서 이를 처리하도록 하는 것 사이에서 무엇이 더 빠른지 잘 모르겠습니다. 결국에는 특정 URL에 대해 404를 즉시 반환하도록 서버 구성에 한 줄을 추가했습니다. 웹마스터와 검색 엔진이 링크를 수정함에 따라 시간이 지남에 따라 트래픽이 저절로 감소합니다(그리고 404 오류로 인해 최신 웹 검색 엔진에서 잘못된 위치 지정이 발생하므로 그렇게 될 것입니다).

관련 정보