Google Compute Engine에서 2 개의 글로벌 전달 규칙 (HTTP 및 HTTPS)으로 HTTP / HTTPS로드 밸런싱을 설정했습니다. 각 규칙은 HTTP 프로토콜을 가진 백엔드 서비스를 가리 킵니다.
모든 요청을 (으) http://*
로 이동 하고 싶습니다 https://*
.
로드 밸런서가 HTTP를 통해 백엔드 서비스와 통신 할 때 백엔드 서비스에서 nginx를 가져 와서를 보낼 수 있다고 생각하지 않습니다 301
.
Google Compute에 대한 수십 가지의 미세 조정을 시도했으며 모두 Google Compute를 반환합니다 502
.
다른 사람이 전에 이것을 설정했다고 확신합니다. 올바른 방향의 팁이나 포인터는 대단히 높이 평가됩니다.
답변
HTTP / HTTPS로드 밸런서를 사용하여 유사한 설정을 수행했으며 HTTPS를 강제로 관리했습니다. 로드 밸런서에서 직접 가능하지는 않지만 백엔드 서비스에서 설정할 수 있습니다. Google Cloud로드 밸런서는 X-Forwarded-Proto http 헤더를 http 또는 https 값으로 설정합니다. 백엔드 서비스 에서이 헤더를 확인하고 (이 경우 Varnish이지만 Nginx에서도 수행 할 수 있음) 값이 http 인 경우 301을 다시 보냅니다.
답변
오늘이 문제에 직면했으며 TCP로드 균형 조정을 사용하여 해결할 수있었습니다. HTTP / HTTPS 특정로드 밸런서 옵션이 필요하지 않은 경우 TCP로드 밸런서 (SSL 없음)를 사용하여 포트 80 및 443으로 트래픽을 수신 할 수 있습니다. 포트 80에서 트래픽의 경우 301을 다시 보낼 수 있습니다.