nginx 의 $proxyhost|$host|$http_host 구별

1561 단어 proxysetheaderNginx
proxy_set_header 백 엔 드 서버 에 보 낼 요청 헤드 를 다시 정의 하거나 추가 할 수 있 습 니 다.value 는 텍스트, 변수 또는 그들의 조합 을 포함 할 수 있 습 니 다.현재 설정 단계 에서 만 proxy 가 정의 되 지 않 았 을 때set_header 명령 시 위의 단계 에서 설정 을 계승 합 니 다.기본적으로 두 개의 요청 헤더 만 다시 정 의 됩 니 다.
proxy_set_header Host $proxy_host;
proxy_set_header Connection close;
nginx 는 upstream 에 대해 기본적으로 IP 기반 퍼 가기 를 사용 하기 때문에 다음 설정 에 대해 다음 과 같이 설정 합 니 다.
upstream web {  
    server abc.com;  
}  
server {  
    listen       80;  
    server_name   www.hehe.com;  
    location /front {  
        proxy_pass http://web;  
        proxy_set_header Host $proxy_host;  
    }  
}
/ front 와 일치 할 때 웹 처 리 를 사용 하여 upstream 에 가면 abc. com 과 일치 합 니 다. 여기 서 IP 로 직접 전송 합 니 다. abc. com 이 다른 nginx 에서 설정 되 어 있 으 면 ip 이 10.10.10.10.10 이 고 $proxy host 는 10.10.10.10 입 니 다. 이 때 Host 가 10.10.10 입 니 다. Host 가 abc. com 이 라면 다음 과 같이 설정 합 니 다.
proxy_set_header Host abc.com;
요청 헤더 "Host" 의 값 을 바 꾸 지 않 으 려 면 이렇게 설정 할 수 있 습 니 다.
 proxy_set_header Host  $http_host;
그러나 클 라 이언 트 요청 헤더 에 이 머리 를 가지 고 있 지 않 으 면 백 엔 드 서버 에 전 달 된 요청 에 도 이 머리 가 포함 되 어 있 지 않 습 니 다. 이 경우 $host 변 수 를 사용 하 는 것 이 좋 습 니 다. 이 값 은 "Host" 요청 헤드 를 포함 할 때 "Host" 필드 의 값 입 니 다. "Host" 요청 헤드 를 가지 고 있 지 않 을 때 가상 호스트 의 주 도 메 인 이름 입 니 다.
 proxy_set_header Host  $host;
또한 서버 이름 은 백 엔 드 서버 포트 와 함께 전송 할 수 있 습 니 다.
 proxy_set_header Host   $host:$proxy_port;
요청 헤더 의 값 이 비어 있 으 면 이 요청 헤드 는 백 엔 드 서버 에 전송 되 지 않 습 니 다.
 proxy_set_header Accept-Encoding "";

좋은 웹페이지 즐겨찾기