Amazon ELB 상태 확인은 어떻게 작동합니까?

Amazon ELB 상태 확인은 어떻게 작동합니까?

내 서버에 ELB를 구성하는 데 문제가 있습니다.

정확히 동일한 conf로 2개의 마이크로 인스턴스를 시작하고 로드 밸런싱을 시도합니다. 그러나 상태 확인(HTTP 포트 80 경로:"/")을 통과하지 못합니다.

  • 웹사이트에서는 Ping이 정상입니다. 80의 텔넷도 마찬가지입니다.

건강검진은 어떻게 진행됐나요? 내가 정말 잘못된 일을 하고 있는 걸까?

편집하다:

  • 직접 브라우저 액세스와 GET(curl을 통해)이 모두 올바르게 작동합니다(상태 200).

답변1

나는 같은 문제를 가지고있다. 임시 솔루션으로 TCP:80을 확인했습니다(잘 작동합니다).

답변2

저는 HTTP 200 응답과는 별도로 응답에 특정 헤더가 포함되어야 한다는 결론에 도달했습니다. 인스턴스에서 실행 중인 Tomcat 서버에서 반환된 HTTP 200이 작동하지 않지만 httpd에서 제공하는 정적 HTML 페이지(또한 200 코드 반환)는 제대로 작동합니다. 헤더를 보면 몇 가지 차이점 중 하나는 Tomcat에 콘텐츠 유형이 포함되어 있지 않다는 것입니다. 하지만 왜 그것이 변화를 가져오는지는 잘 모르겠습니다.

답변3

각 서버의 지정된 경로 "/"에 대해 HTTP GET 요청을 수행하고 성공적인 HTTP 응답 코드(200)를 찾는다고 가정합니다. http://<backend_server_IP>:80/브라우저(또는 wget또는 같은 CLI 도구 curl) 를 통해 GET 요청을 성공적으로 수행할 수 있습니까 ?

요청이 성공적으로 처리되면 두 번째로 물어봐야 할 것은 포트 80에 대한 액세스가 특정 소스 주소나 서브넷으로 제한되도록 서버의 보안 그룹을 구성했습니까? 그렇다면 ELB의 보안 그룹을 필터에 추가해야 합니다. 그룹은 항상 다음과 같이 호출됩니다.

amazon-elb/amazon-elb-sg

따라서 AWS 콘솔의 보안 그룹 섹션에 있는 '소스' 필드 아래에 이를 추가하면 됩니다.

답변4

그래서 나는 (PHP 페이지와 반대되는) 정적 HTML 파일을 가리켜 작동하도록 http 검사를 받았습니다.

컬 등을 사용할 때 유효한 http 상태를 반환함에도 불구하고 '/'는 작동하지 않습니다. 그러나 '/file.html'은 상태 확인을 통과합니다.

관련 정보