특정 ACL 일치에 대해 204를 리턴하도록 haproxy 구성


8

누군가 내 웹 서버의 특정 경로에 액세스하려고하면 HTTP 204 오류 코드를 반환하고 싶습니다. 내 웹 서버 중 하나가 204 오류를 반환하고 haproxy를 백엔드로 가리 키도록 설정할 수 있습니다. 그러나 정보가 전송되지 않기 때문에 이것이 haproxy 자체에서 가능할 것이라고 생각했습니다. 실제 웹 서버를 귀찮게 할 필요가 없습니다.

다음과 같이 204 오류를 생성하는 백엔드를 만들려고했습니다.

frontend ...
    ...
    acl is_always204 path_beg /thisone
    use_backend always204 if is_always204
    ...

backend always204
    errorfile 404 /etc/haproxy-shared/errors/204.http

204.http 파일에는 다음이 포함됩니다.

HTTP/1.0 204 No Content Cache-Control: no-cache Connection: close Content-Type: image/png

haproxy를 시작하면 다음 오류가 발생합니다.

parsing [/etc/haproxy/haproxy:51] : status code 404 not handled, error customization will be ignored.

나는 이것에 대해 잘못 가고 있다고 생각합니다. 누구든지 주어진 acl 일치에 대해 haproxy가 204를 반환하도록하는 방법을 제안 할 수 있습니까?


2
이 오류 파일을 만들려고 했습니까 503? 실제 백엔드 서버가 없으므로 HAproxy가 503응답을 제공해야합니다 .
Felix Frank

이 상황에서 204가 올바른 상태 코드라고 생각하십니까? HAProxy 문서 에 따르면 204 및 404는 지원되는 리턴 코드가 아닙니다. 이것은 403반환 하려는 것 같습니다 . 204는 요청이 서버로 전달되었음을 제안합니다.
Anthony Fammartino

1
흥미 롭군 Content-Type이 문맥에서는 의미가 없지만 여기에 문맥이 무엇인지 파악하기에 충분한 정보가 없습니다. 물론 HTTP 204는 거의 사용되지 않습니다. 204에 대한 나의 생각은 그것을 사용하는 것이 전혀 의미가없는 시나리오가 있다면 원 서버가 아마도 그것을 보내야한다는 것입니다.
Michael Hampton

답변:


2

주석에서 언급했듯이 HAProxy는 404를 생성하지 않으므로 404에 대한 오류 파일을 지정할 수 없습니다. HAProxy가 실제로 방출하고 구성 가능한 오류 파일이있는 503과 같은 것을 사용해야합니다. 204 파일은 그대로 사용할 수 있습니다. 구성에서 503 대신 503을 사용하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.