У меня есть группа экземпляров GCP с 2 экземплярами. Оба работают. Я хочу настроить балансировщик нагрузки (HTTPS) для управления трафиком c.
. Я установил правило пересылки с HTTP-протоколом и сертификатом, управляемым Google. Это все работает, но только когда трафик c между балансировщиком нагрузки и серверной частью (экземпляры) является простым HTTP.
Шаги, которые я сделал до сих пор
- Я создаю шаблон, и этот шаблон - обычный компьютер серии N1. Я установил флажки для создания правил брандмауэра для разрешения http и https traffi c.
- Я создаю правило брандмауэра с именем «allow-ports». Это правило брандмауэра предназначено для всех экземпляров в сети, имеет диапазон IP-адресов 0.0.0.0/0 и разрешает порт tcp = 80, 443. Как я вижу, это правило брандмауэра должно открывать как http (80), так и https (443). порт.
- Я создаю группу экземпляров с сопоставлением портов. "http-port" = 80, "https-port" = 443. Я использую только что созданный шаблон.
- Когда создается группа экземпляров, я проверяю, работает ли она. С S SH я получаю доступ к экземплярам и устанавливаю apache (sudo apt-get install -y apache2) на обоих. При переходе к их внешним IP-адресам в браузере я вижу их обоих.
- Я создаю балансировщик нагрузки HTTP (S) с параметром «От inte rnet до моих виртуальных машин». Для конфигурации бэкэнда я добавляю бэкэнд-сервис с моей группой экземпляров, протоколом HTTP, с именем port "http-port". Для настройки внешнего интерфейса я настроил протокол HTTPS, создал IP-адрес IPv4, создал ssl-сертификат, управляемый Google, и все готово. Я также добавил проверки здоровья между прочим.
Теперь ... эти шаги работают (через несколько минут). С облачным DNS я настроил доменное имя, которое указывает на IP-адрес балансировщика нагрузки. При переходе я вижу страницу apache.
Что не работает?
Когда я изменяю внутреннюю конфигурацию на HTTPS (и с именем порта "https" -port "), я получаю 502 ошибку сервера. Так что мне кажется, что есть какая-то связь, но есть ошибка. Может ли это быть apache ошибкой?
Я потратил целый день на создание и воссоздание групп экземпляров, правил брандмауэра, балансировщиков нагрузки ... но, похоже, ничего не работает. Я, конечно, что-то упускаю, возможно, что-то тупое, но я понятия не имею, что это может быть.
Чего я хочу достичь?
Я не только Мне нужно безопасное (HTTPS) соединение между клиентом и моим балансировщиком нагрузки, я также хочу безопасное соединение между балансировщиком нагрузки и бэкэнд-сервисом (группа экземпляров). Поскольку GCP предлагает возможность использовать протокол HTTPS при создании внутреннего сервиса, я чувствую, что это можно сделать.
Если честно: я читаю несколько статей о том, что внутренний трафик c защищен, поэтому HTTPS-соединение не требуется. Но это не имеет значения для меня, я действительно хочу знать, как это работает!
РЕДАКТИРОВАТЬ
Я использую правильный VP C (по умолчанию) , Я также изменил правило брандмауэра с 0.0.0.0/0 до 130.211.0.0/22 и 35.191.0.0/16 (см .: https://cloud.google.com/compute/docs/tutorials/globally-autoscaling-a-web-service-on-compute-engine?hl=nl#configure_the_load_balancer).