[configuration] Nginx에서 $ host와 $ http_host의 차이점은 무엇입니까?

Nginx에서 변수 $host와 의 차이점은 무엇입니까 $http_host?



답변

$host핵심 모듈 의 변수입니다 .

$ 호스트

이 변수는 Host 헤더를 사용할 수없는 경우 요청 헤더 또는 요청을 처리하는 서버 이름의 Host 행과 같습니다.

이 경우이 변수는 $ http_host와 다른 값을 가질 수 있습니다. 1) 호스트 입력 헤더가 없거나 비어있는 값이있는 경우 $ host는 server_name 지시문의 값과 같습니다. 2) Host 값에 포트 번호가 포함되어 있으면 $ host는 해당 포트 번호를 포함하지 않습니다. $ host의 값은 0.8.17부터 항상 소문자입니다.

$http_host또한 동일한 모듈의 변수이지만 일반적으로 $http_HEADER( ref ) 로 정의되어 있기 때문에 해당 이름으로 찾을 수 없습니다 .

$ http_HEADER

HTTP 요청 헤더 HEADER의 값은 소문자로 변환되고 ‘대시’가 ‘밑줄’로 변환 된 경우 (예 : $ http_user_agent, $ http_referer …;


요약 :

  • $http_host항상 HTTP_HOST요청 헤더 와 같습니다 .
  • $host동일 $http_host, 소문자와 포트 번호가없는 (있는 경우) 경우를 제외하고는 HTTP_HOST존재하지 않거나 비어있는 값이다 . 이 경우 요청을 처리 한 서버 $hostserver_name지시문 값과 같습니다 .

답변