프록시 뒤에서 Express 앱을 실행할 때는, (app.set()을 이용하여) 애플리케이션 변수 trust proxy
를 다음 표에 나열된 값 중 하나로 설정하십시오.
애플리케이션 변수 trust proxy
가 설정되지 않아도 앱은 실행되지만, trust proxy
가 구성되지 않으면 프록시의 IP 주소가 클라이언트 IP 주소로 잘못 등록됩니다.
유형 | 값 |
---|---|
부울 |
|
IP 주소 |
신뢰할 IP 주소나 서브넷, 또는 IP 주소 및 서브넷의 배열입니다. 아래의 목록에는 사전에 구성된 서브넷 이름이 표시되어 있습니다.
다음의 방법 중 하나로 IP 주소를 설정할 수 있습니다.
IP 주소 또는 서브넷이 지정되는 경우, 해당 IP 주소 또는 서브넷은 주소 결정 프로세스에서 제외되며, 신뢰할 수 있는 것으로 지정되지 않은 IP 주소 중 애플리케이션 서버에서 가장 가까운 IP 주소가 클라이언트의 IP 주소로 결정됩니다. |
숫자 |
가장 앞의 프록시 서버로부터 |
함수 |
사용자 정의 신뢰 구현입니다. 이 방법을 올바르게 숙지하고 있는 경우에만 이 방법을 사용하십시오.
|
trust proxy
값을 false
이외의 값으로 설정하면 다음과 같은 세 가지의 중요한 변화가 발생합니다.
req.hostname의 값은 X-Forwarded-Host
헤더에 설정된 값으로부터 도출되며, 이 값은 클라이언트 또는 프록시에 의해 설정될 수 있습니다.
https
인지, http
인지, 또는 잘못된 이름인지의 여부를 앱에 알리기 위하여 역방향 프록시가 X-Forwarded-Proto
를 설정할 수 있습니다. 이 값에는 req.protocol이 반영됩니다.
trust proxy
설정은 proxy-addr 패키지를 이용해 구현됩니다. 자세한 정보는 해당 문서를 참조하십시오.