/ nginx

$http_host vs $host vs $server_name in nginx

nginx에서 rewrite를 작성할때 아래처럼 여러 변수를 활용할 수 있다.

$http_host

HTTP Request 의 Host 헤더값

$host

  • Host 헤더가 없다면, server_name
  • Host 헤더를 사용하되, 포트값은 제외하고 모두 소문자로 표시

$server_name

해당 서버 블럭의 이름

$hostname

nginx가 구동되는 머신 이름

server_name niceilm.net devnote.niceilm.net seafile.niceilm.net
return 301 https://$host$request_uri;

간단히 내린 결론은 server_name을 여러개를 사용하면서 rewrite하고 싶을때는 $host를 쓰자.

nginx: http_host, host, server_name, hostname 변수의 차이점