[server] 일치하는 acl이 없을 때 HAProxy에서 404 제공

현재 1.5dev-17을 사용하여 HAProxy를 재구성하고 있습니다. 내가 원하는 것은 특정 요청에 사용할 백엔드가 없을 때 404 오류를 반환하는 것입니다.

현재 구성은 default_backend를 사용하여 django 앱 서버로 라우팅하지만 다른 구성된 백엔드와 일치하지 않는 펜 테스트와 같은 많은 프로빙 요청이 있으면 django 서버는 시도 할 때 중단됩니다. 이러한 잘못된 요청을 처리하여 결국 404를 반환합니다.

장고 백엔드에 위임하는 대신 HAProxy에서 404를 제공하고 싶습니다. 나는 현재 핵으로 이것을 달성하고있다 :

frontend www
    ...
    default_backend nomatch

backend nomatch
    errorfile 503 /var/www/http/404.http

그리고 404.http 파일 내에서 헤더에 404 상태 코드를 설정했습니다. 이것은 작동하지만 매우 잘못 느낍니다. HAProxy로 이것을 달성하는 더 좋은 방법이 있습니까? 아니면 정기적 인 백엔드를 사용해야하고 그 핸들이 404로 응답하도록해야합니까?



답변

200, 400, 403, 405, 408, 429, 500, 502, 503 또는 504 응답 코드 중 하나라도 괜찮다면

그런 다음 다음과 같이 할 수 있습니다.

frontend www
  ...
  default_backend no-match

backend no-match
  http-request deny deny_status 400

답변

비슷한 것을 원하면 이것은 내가 생각해 낸 것과 같습니다. 잘못 느꼈지만 실제로는 잘 작동하며 특정 URL을 블랙리스트에 올리는 것보다 훨씬 깨끗합니다. 의견이 잘못되었다고 생각하지 않도록 의견을 남기십시오.


답변