답변:
$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
존재하지 않거나 비어있는 값이다 . 이 경우 요청을 처리 한 서버 $host
의 server_name
지시문 값과 같습니다 .server_name
지시문도 가질 수 있습니다 . 첫 번째 정규 표현식을 사용하면 정규 표현식 $host
이되고 다시 작성 규칙 중에 모든 종류의 추한 일이 발생할 수 있습니다.
$server_name
변수는 동일 server_name
지시어의 값 또는 다중이 있다면 선택한 실제 서버 이름 server_name
지시는?
$server_name
는 항상 server_name 지시문으로 지정된 첫 번째 값과 같습니다. 예를 들어,로는 server_name example.com one.example.com two.example.com;
, $server_name
항상, "example.com"이됩니다 에 관계없이 사용자가 지정한하는 호스트의 . 실제로가 없으면 default_server
호스트는 example.org와 같이 완전히 다른 것일 수 있습니다.
server_name
입니다. 여러 개가 있으면server_name
첫 번째 것만 나타납니다.