nginx는 공백 200 응답을 보냅니다


19

들어오는 요청을 수락하고 빈 200 응답으로 응답하도록 페일 오버 서버를 구성하고 있습니다. 아이디어는 회신 시간을 최소화하고 40x 또는 50x를 보내지 않도록하는 것입니다.

return 200;Nginx에서 원하는 위치를 사용하려고 시도했지만 모니터링 시스템 (Pingdom)이 응답을 좋아하지 않아 서버가 응답하지 않는 것으로 간주합니다.

물론 서버에서 최소한의 오버 헤드 로이 작업을 수행하는 더 좋은 방법이 있습니까?

답변:


23

HTTP 상태 코드 204 No Content는 "요청을 완료했지만 반환 할 본문이 없습니다"라고 말합니다.

10.2.5 204 내용 없음

서버가 요청을 이행했지만 엔티티 본문을 리턴 할 필요가 없으며 업데이트 된 메타 정보를 리턴 할 수 있습니다. 응답에는 엔티티 헤더의 형태로 새로운 메타 정보 또는 업데이트 된 메타 정보가 포함될 수 있습니다.

클라이언트가 사용자 에이전트 인 경우 요청을 보낸 원인에서 문서보기를 변경해서는 안됩니다. 이 응답은 주로 사용자 에이전트의 활성보기에있는 문서에 새로운 또는 업데이트 된 메타 정보를 적용해야하지만, 사용자 에이전트의 활성 문서보기를 변경하지 않고 작업에 대한 입력을 허용하기위한 것입니다.

204 응답은 메시지 본문을 포함해서는 안되므로 항상 헤더 필드 다음의 첫 번째 빈 줄로 종료됩니다.


안녕하세요 Alex 감사합니다. 요즘 모든 주요 브라우저에서 204 응답 코드가 인식되는지 궁금합니다. 즉, 내 서버가 204를 보내기 시작하면 일부 방문자 (브라우저, 모바일, 터미널에서)에 오류가 발생할 가능성이 있습니까?
Sparsh Gupta

1
@SparshGupta 브라우저 호환성 전문가가 아닙니다. 죄송합니다. 몇 가지 브라우저 (FF 7 및 Mac OSX의 Safari)에서 빠른 검사를했습니다. 정확히 아무것도하지 않습니다. 예를 들어, 페이지가 이미 열려있는 경우 주소 표시 줄에 204를 반환하는 URL을 입력하고 Enter를 누르면 두 브라우저 모두 여전히 이전 페이지를 표시합니다.
Alexander Azarov

29

nginx가 다음과 같은 구성 블록으로 빈 HTTP 200을 다시 반환하도록 할 수 있습니다.

location = /health {
  return 200;
  #access_log off;
}

access_log모든 상태 점검을 기록하지 않으려면 회선의 주석을 해제하십시오 .


6
위치 다음에 '='기호가 중요합니다. 그게 없으면, 해당 파일이 다른 nginx를 그것으로 (200)를 반환하지 않습니다, 존재해야합니다, 당신은 당신이 원하는 어떤 위치를 확인하고 파일에 대한 걱정과 nginx를 행복하게 (200)를 반환 할 수 있습니다
플로린 안드레이

인증 된 요청이 200을 반환하고 인증되지 않은 401을 반환하는 기본 인증과 결합하는 방법은 무엇입니까?
Kiril
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.