다음 백엔드 구성과 함께 HAProxy 1.4.18을 사용하고 있습니다.
backend staging
option httpchk HEAD /check.txt HTTP/1.0
http-check disable-on-404
default-server error-limit 1 on-error mark-down
server staging01 x.x.x.x:80 check observe layer7
server staging02 x.x.x.x:80 check observe layer7
서버는 아파치 / 승객에서 여러 응용 프로그램을 실행하고 있습니다.
httpchk와 disable-on-404의 조합으로 서버에 대한 서버를 아주 쉽게 종료하고 서버에서 쉽게 제거 할 수 있습니다.
응용 프로그램이 작동하지 않을 때 서버를 비활성화하기 위해 관찰을 설정하려고합니다. staging02에서 응용 프로그램 구성을 중단하여 항상 500을 반환합니다. 처음 500 이후에는 DOWN으로 올바르게 표시되었지만 다음 httpchk에서는 UP으로 표시되었습니다.
로그 파일은 다음과 같습니다.
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 2 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is DOWN, reason: Health analyze, info: "Detected 1 consecutive errors, last one was: Wrong http response". 1 active and 1 backup servers left. 1 sessions active, 0 requeued, 0 remaining in queue.
Server staging/staging02 is UP, reason: Layer7 check passed, code: 200, info: "OK", check duration: 0ms. 2 active and 1 backup servers online. 0 sessions requeued, 0 total in queue.
이 두 가지 수표를 결합하는 방법이 있습니까?
HAProxy가 확실히 문제인지 확인하기 위해 백엔드 Apache 서버에서 일치하는 3 개의 로그 라인을 찾아 질문에 추가 할 수 있습니까?
—
Ladadadada
아파치 서버 중 하나가 의도적으로 잘못 구성되어있어 모든 응용 프로그램에서 500 오류 코드를 반환합니다. 그러나 파일을 제거하지 않으면 /check.txt가 항상 작동합니다. check.txt 파일이 여전히 있어도 500 오류를 반환하면 아파치 서버를 비활성화하고 싶습니다.
—
ouranos