Динамическое выделение SSL в GCP HTTP (s) балансировщик нагрузки уровня 7
Я изучаю GCP, и мне нравится, как он позволяет разработчику играть с такой дорогостоящей инфраструктурой. до сих пор я многому научился. Я больше не новичок, и у меня есть этот случай, для которого я не могу найти документы или примеры, или я могу думать в неправильном направлении.
Я хочу создать решение для хостинга с автоматическим масштабированием, в котором пользователи смогут:
- Зарегистрироваться
- Создайте несколько веб-сайтов [эти веб-сайты в основном являются временными, где пользователь может определять определенные поля, и веб-сайт отображается определенным образом | пользователям не разрешено загружать файл, а только некоторые записи данных]
- На веб-сайте пользователь может подключиться к домену [поместить запись DNS «A» в свой домен]
- После этого платформа автоматически предоставляет SSl, и веб-сайт запускается. [что-то вроде базы огня]
Я мог бы легко создать такой проект на одном сервере со следующей конфигурацией [пропустил простые шаги, такие как авторизация пользователя и т. Д.]:
- Я использую ubunutu 16.04 в качестве типа моей машины с оперативной памятью 4 ГБ и постоянным диском 10 ГБ
- Затем я устанавливаю [пакет для управления node.js]
- после этого я устанавливаю конкретную версию node.js, используя
nvm
- Я написал простой пакет javascript, в котором я использую экспресс-сервер для ответа на запросы клиента с помощью некоторого html
- для управления ssl я использую letsencrypt's
certbot
упаковка - я использую
pm2
для запуска файла javascipt как службы в фоновом режиме
После того, как я смог выполнить эту задачу, я мог видеть, что все работает так, как я хочу.
затем я начал изучать балансировщики нагрузки GCP, там я узнал о 4-х и 7-уровневых LB и реализовал несколько тестов hello world [с использованием сценариев запуска] во всех возможных конфигурациях, например
- 7 слой http
- 7 слой https
- 4-х слойный внутренний tcp
- 4-х слойный внутренний ssl
Вот основная проблема, с которой я столкнулся: я не могу найти способ динамически выделить SSL для входящего запроса к балансировщику нагрузки.
В моем случае запросы могут поступать из любого домена, поэтому балансировщик нагрузки GCP должен иметь какую-то конфигурацию для предоставления SSL для определенного домена [я читал, что он может выделять SSL для 100 доменов, но как я могу автоматизировать это] или может там быть способом, которым вместо проксирования запросов [LB генерирует новый запрос на внутренние серверы], запросы просто перенаправляются, чтобы внутренние серверы могли обрабатывать управление SSL.
Я могу ошибаться в понимании концепций. Пожалуйста, помогите мне решить проблему. я хочу построить
firebase-hosting clone
на моем собственном. приветствуется любой ответ 🙏🙏🙏
1 ответ
Один из способов сделать это - обновить ваш JS-скрипт, чтобы сгенерировать управляемый Google сертификат для каждого нового домена через gcloud:
gcloud compute ssl-certificates create CERTIFICATE_NAME \
--description=DESCRIPTION \
--domains=DOMAIN_LIST \
--global
а затем примените его к балансировщику нагрузки:
gcloud compute target-https-proxies update TARGET_PROXY_NAME \
--ssl-certificates SSL_CERTIFICATE_LIST \
--global-ssl-certificates \
--global
Имейте в виду, что балансировщику нагрузки может потребоваться от 5 до 20 минут, чтобы начать использовать новые сертификаты.
Вы можете найти больше информации здесь .