저는 5년 넘게 알리바바 클라우드 SLB 로드 밸런서를 사용해 왔으며, 초기 알리바바 클라우드 내부 베타부터 사용해왔으며, 배포 후 다음과 같은 오류가 발생했습니다:
오류가 간헐적으로 발생합니다, 처음 부팅 후에는 502 게이트웨이 오류가 발생하지 않고, 1분 기다린 후 백엔드 Windows Server IIS 컨테이너 ASP.NET 웹사이트에 오류가 나타납니다.
서버에서 IIS를 클릭하면 브라우저를 열고, 정상적으로 탐색할 수 있습니다. SLB 부하 분산 간접 문제는 처음 겪었는데, 이번이 처음입니다.
용액:
문제는 주로 "건강 점검 방법" 설정에서 발생하며, 기본 설정은 다음과 같습니다:
백엔드 건강 점검이 헤드웨이에서 요청되며, 해당 상태 코드가 2xx 또는 3xx를 반환하면 백엔드 서버는 정상으로 간주됩니다.
헤더 요청을 세 가지 방법으로 시도했는데, 첫째, 로컬 프로젝트를 직접 실행하고 로컬에서 테스트했습니다.
테스트 1:
아래에 표시된 우편배달부 테스트를 사용하세요:
404 미발견 상태로 돌아가서, 사실 여기서는 원인을 알고 있습니다.
테스트 2:
아래에 표시된 컬 테스트를 사용하세요:
C:\Users\itsvse>curl -i -X HEAD http://localhost:60155/
Warning: Setting custom HTTP method to HEAD with -X/--request may not work the
Warning: way you want. Consider using -I/--head instead. HTTP/1.1 404 찾을 수 없음
Cache-Control: private
Content-Length: 4432
Content-Type: text/html; charset=utf-8
Server: Microsoft-IIS/10.0
X-SourceFiles: =?UTF-8?B?QzpccHJvamVjdFxteVxDb2RlU2hhcmluZ1xDb2RlU2hhcmluZy5XZWJVSVxIb21lXEVycm9yNDA0?=
X-Powered-By: ASP.NET
Date: Tue, 13 Aug 2019 03:53:04 GMT
curl: (56) Recv failure: Connection was reset
또한 404 상태 코드도 반환됩니다.
테스트 3:
이번에는 아래 그림과 같이 PowerShell 하의 컬 테스트를 통해 공식 서버에서 직접 테스트했습니다:
머리를 통해 같은 페이지가 요청된 것을 볼 수 있습니다,가끔 돌아오세요404상태 코드, 때때로 반환됨200상태 코드이로써 우리가 초기에 겪었던 간헐적인 502 오류가 확인되었습니다.
asp.net 간헐적으로 404와 200 상태 코드가 반환되는 원인은 무엇인가요?
우리 홈페이지에는 캐시가 있기 때문에, 사용자가 get 메서드를 사용해 홈페이지를 요청하면 페이지가 성공적으로 캐시되고, head와 get은 항상 캐시된 페이지를 반환하며, 캐시가 만료된 후 사용자가 get 메서드 요청을 하지 않고 명령어를 통한 head 메서드 요청만 할 경우 404 오류가 발생합니다. 이런 문제를 겪는 사람은 거의 없을 것으로 추정됩니다.
해결책은 아래 그림과 같이 건강 상태 검사 모드에서 모든 응답 상태 코드를 확인하는 것입니다:
레이어 7 리스닝(HTTP/HTTPS) 건강 검사 이상 문제 해결 방법:하이퍼링크 로그인이 보입니다.
(끝)
|