Глобальная пересылка Google Cloud: недопустимое значение для поля ресурса. IP-адрес - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь реализовать поддержку https для моей виртуальной машины GCP. Для этого я создал все компоненты балансировки нагрузки, то есть группу экземпляров, проверку работоспособности, бэкэнд-сервис, отображение URL-адресов и целевой прокси-сервер. Все были созданы без ошибок. Однако теперь, когда я создаю правило глобальной пересылки для последнего шага, я получаю следующую ошибку:

ОШИБКА: (gcloud.compute.forwarding-rules.create) Не удалось получить ресурс: - Неверное значение для поля 'resource.IPAddress': '35 .xxx.xxx.xxx '. Указан неверный IP-адрес.

Я использую следующую команду:

gcloud compute forwarding-rules create fa-global-fwding-rule-1 --target-https-proxy=fa-https-proxy-1 --ports=443  --global --address=35.xxx.xxx.xxx

(IP добавляет цифры, замаскированные с ххх)

Что мне не хватает?

У меня уже есть работающий экземпляр виртуальной машины через http, где я перевел его эфемерный адрес на статический адрес (выше тот же адрес 35.xxx.xxx.xxx)

Кроме того, после того, как я реализую поддержку https, я хочу, чтобы http connect также продолжал работать, чтобы мои существующие apis не менялись, пока я не переместил их на https

Любой совет / помощь?

Ответы [ 3 ]

0 голосов
/ 20 сентября 2018

Нет никаких признаков того, что ваш серверный экземпляр также прослушивает порт 443. Используется протокол HTTPS.

Перенаправление протоколов с HTTP на HTTPS не поддерживается в балансировщиках нагрузки GCP, другими словами, недостаточно прослушивать внешний интерфейс на 443, серверы внутренних сетей также должны это делать.

Вы можете проверить это сообщение , чтобы узнать, как сделать перенаправление на уровне экземпляра бэкэнда.

Также не рекомендуется использовать самозаверяющие сертификаты во избежание получения предупреждений о сертификатах при просмотре. Если вы ищете бесплатные сертификаты, я бы рекомендовал проверить Letsencrypt .

0 голосов
/ 13 февраля 2019

Балансировщик нагрузки опорных точек не проверяет, был ли выбранный вами статический IP-адрес региональным или глобальным. Если вы случайно зарезервировали «региональный» IP вместо «глобального» IP, он выдаст эту глупую ошибку:

Недопустимое значение для поля «resource.IPAddress»: «35 .xxx.xxx.xxx». Указан неверный IP-адрес.

0 голосов
/ 31 августа 2018

Я не нахожу никаких проблем с вашей командой, такого рода ошибки чаще всего наблюдаются из-за конфликта IP, если указанный IP-адрес используется или недоступен. Правила пересылки сопоставляют IP-адрес вашего балансировщика нагрузки с целевым прокси-сервером, который будет обрабатывать запросы. Поэтому сначала вам нужно будет создать свой IP-адрес. Используя эту команду: $ gcloud compute address создает мой адрес --global

А затем создайте правило пересылки. Вам понадобится глобальный, а не региональный IP-адрес для вашего балансировщика нагрузки HTTPS. Используя эту команду:

$ gcloud compute forwarding-rules создает my-https-forwarding-rule --global --адрес 123.123.123.123 - TCP-протокол IP - диапазон 443 --target-https-proxy my-https-proxy

Можете ли вы подтвердить, используете ли вы глобальный или региональный IP-адрес?

Для HTTP вам необходимо создать полностью отдельный Target HTTP Proxy и правило пересылки для HTTP. По сути, вам нужно иметь два балансировщика нагрузки для обработки трафика, а затем фактически перенаправлять пользователей в вашем приложении. Обратите внимание, что мы добавили один и тот же IP-адрес для правила пересылки HTTP. Это позволяет нам прослушивать порт 80 и порт 443 с нашего IP-адреса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...