저는 ISP에서 일하고 있으며 사용자의 신용이 0일 때 모든 HTTP는 지불을 위해 내 웹 서버(Apache 2.2)에 NAT를 요청합니다.
사용자의 다운로더나 자동 업데이트 프로그램이 실행 중인 경우 모든 요청이 내 웹 서버로 들어오고 이 작업으로 인해 Apache 응답의 75%가 404가 됩니다.
해당 요청 패킷을 제한하거나 캐시하거나 삭제하고 싶습니다. 누구든지 해결책이 있습니까? Apache, 방화벽 또는 라우터 수준에서.
답변1
이 문제에 대한 좋은 해결책은 없습니다. Apache는 "Pay Up, Sucker!" 메시지를 표시하기 위해 요청을 처리해야 합니다. 페이지. 요청이 Apache로 전달되는 것을 방지하는 모든 작업은 네트워크 계층에서 발생해야 하며, 이 시점에서 사용자는 더 이상 종속 포털 페이지를 볼 수 없으며 대신 "ITS BROKEN!"이라고 외치며 헬프데스크에 전화하게 됩니다.
솔직히 그러면 안된다케어종속 포털 서버가 CPU/RAM 등을 씹어먹는 경우 - 결제 페이지를 전용 상자에 넣고 계속 진행되도록 하세요. 그것을 치는 사람들은 무모한 사람들이며 지불 페이지를 얻기 위해 몇 번 다시 로드를 눌러야 한다면 그렇게 하십시오.
또한 귀하의 결제 서버가 404를 반환해서는 안 됩니다.항상-- URL에 관계없이 수신되는 모든 요청에 대해 결제 페이지를 제공해야 합니다.
답변2
몇 가지 옵션:
포괄 구성과 함께 nginx 또는 기타 '가벼운' http 서버를 사용하세요.
소스 IP당 iptables 기반 속도 제한을 사용하고 [google의 키워드: iptables hashlimit] 원치 않는 비율의 요청을 거부하거나 자동으로 삭제하고 소수만 통과시킵니다.