Я играю с балансировкой нагрузки GCP и хочу перенаправить ссылки HTTP на HTTPS. Но не могу понять.
Моя балансировка нагрузки выглядит так:
Load balancer name
Front End:
Protocols IP Certificate
HTTP x.x.x.x:80 -
HTTPS x.x.x.x:443 example-com
Back End:
Hosts Paths Backend
example.com /* webs-backend
Моя веб-серверная часть - это простой веб-сервер nginx, который прослушивает порт TCP / 80. Конфигурации сервера Nginx:
server {
server_name example.com;
root /var/www/html;
<snip>
}
Теперь с этой настройкой балансировки нагрузки GCP я могу получить доступ как к HTTP, так и по HTTPS, попытался настроить Nginx для отправки переадресации клинтов 301 на HTTPS, и это не сработает. Слишком много перенаправлений.
Вопрос в том, как мне настроить балансировку нагрузки GCP для правильного перенаправления HTTP на HTTPS?
В группу разработчиков продукта Google отправлен запрос функции для поддержки балансировщика нагрузки GCP HTTP (s). Вы можете отслеживать это в публичном выпуске Google трекер.
Eсть нить обсуждая то же самое и на сервере NGINX, вы можете сделать то же самое, добавив следующую строку в файл конфигурации nginx следующим образом:
if ($http_x_forwarded_proto = "http") {
return 301 https://$host$request_uri;
}
Вы можете это проверить нить также, что может вам помочь.
В настоящее время вы можете сделать это прямо из HTTP (S) Load Balancing. В Google Cloud появилась поддержка Rewrites и Redirects (с апреля 2020 года).
См. Эту статью, чтобы узнать, как настроить:
Подробнее об этой функции: