2016-12-22 4 views
2

나는 다음과 같은 Haproxy 설정이 : 내가 아닌 기존 도메인, 전 대한 URL을 명중Haproxy의 ERRORFILE 읽을 수 없습니다

frontend http-in 
    mode http 
    bind :80 

    option forwardfor 
    option httplog 
    reqadd X-Forwarded-Proto:\ http 

    default_backend http-routers 

    errorfile 502 /var/haproxy/404.http 
    acl is_internal_error status eq 404 
    rspdeny . if is_internal_error 

: http://test.example.com 나는 시간 초과 오류 (408)를 수신한다.

그러나 errorfile 502 /var/haproxy/404.http 행을 검색하면 502 오류 코드의 기본 오류 메시지가 표시됩니다.

왜 Haproxy가 내 파일 /var/haproxy/404.http을 읽을 수 없는지 말할 수 있습니까?

답변

0

박쥐 바로 권한 문제와 같은 소리가납니다. 어떤 사용자가 haproxy로 실행됩니까? /var/haproxy/404.http의 권한을 게시 할 수 있습니까?

+1

haproxy가 루트로 실행됩니다. 그리고 /var/haproxy/404.http의 권한을 777 (chmod 777)으로 변경했습니다. 그러나 여전히 같은 문제입니다 –

+0

근본 원인이 AWS ELB 인 것 같습니다. 사실 HAproxy는 AWS ELB 뒤에 있습니다. ELB를 제거하자마자 사용자 정의 오류 페이지를 얻을 수 있습니다. 하지만 ELB가 Haproxy 앞에서 HTTP/1.1 504 GATEWAY_TIMEOUT Content-Length : 0 Connection : keep-alive를 얻습니다. 아무도 저에게 무슨 일이 일어나고 있는지 말해 줄 수 없습니다. 감사. –

+0

이 문제는 http://stackoverflow.com/questions/43376997/haproxy-behind-elb에서 해결되었습니다. –

0

나는 이것이 Haproxy behind ELB의 중복이라고 생각합니다.

TL; erro_file 개행 형식의 문제점. 응답 본문에는 HTTP INFO 행에^M이 필요하지 않습니다. 왜 그런지 모르지만 그런 식으로 행동합니다. 도움이되기를 바랍니다. Example file에는 vi (m)에서 열 때 해당 문자가 있습니다. 내용을 복사하지 마십시오. 동일하지만 보이지 않습니다.

건배