google-cloud-platform - GCP HTTP(s) 第 7 层负载平衡器中的动态 SSL 分配
问题描述
我正在探索 GCP,我喜欢它让开发人员使用如此昂贵的基础设施的方式。到现在为止我学到了很多很多东西。我不再是初学者,我遇到了这种情况,我无法找到文档或示例,或者我的想法可能是错误的。
我想构建一个自动缩放的托管解决方案,用户可以:
- 创建账户
- 创建多个网站[这些网站基本上是模板,用户可以定义某些字段并以特定方式呈现网站 | 用户不允许上传文件,而只是一些数据条目]
- 在网站中,用户可以连接域 [将“A”记录 DNS 条目放在他们的域中]
- 之后,平台会自动提供一个 SSI,网站就会启动并运行。[有点像火力基地]
我可以使用以下配置在一台服务器上轻松创建这样的项目[跳过简单的步骤,如用户身份验证等]:
- 我使用 ubunutu 16.04 作为具有 4GB 内存和 10GB 持久磁盘的机器类型
- 然后我安装
nvm
[一个包来管理 node.js] - 之后,我使用安装特定版本的 node.js
nvm
- 我编写了一个简单的 javascript 包,在其中我使用 express 服务器用一些 html 响应客户端请求
- 为了管理 ssl,我使用了letsencrypt的
certbot
包 - 我用来
pm2
在后台运行 javascipt 文件作为服务
在能够完成这件事之后,我可以看到一切都按照我想要的方式进行。
然后我开始探索 GCP 的负载均衡器,在那里我了解了 4 层和 7 层 LB,并在所有可能的配置中实现了一些 hello world 测试 [使用启动脚本],例如
- 7层http
- 7层https
- 4层内部tcp
- 4层内部ssl
这是我面临的主要问题: 我找不到将 SSL 动态分配给负载均衡器的传入请求的方法
在我的情况下,请求可能来自任何域,因此 GCP 负载平衡器必须具有某种配置来为特定域提供 SSL [我已经读到它可以为多达 100 个域分配 SSL,但我如何才能使事情自动化] 或者可以在那里是一种方式,而不是请求被代理[LB 生成一个新的请求到内部服务器],请求只是被重定向,以便内部服务器可以自己处理 SSL 管理
我对这些概念的理解可能在某个地方是错误的。请帮我解决问题。我想自己建造firebase-hosting clone
。欢迎任何形式的回应
解决方案
一种方法是更新您的 JS 脚本以通过 gcloud 为每个新域生成 Google 管理的证书:
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 分钟才能开始使用新证书。
您可以在此处找到更多信息。
推荐阅读
- html - “C++”而不是“C++”会阻碍搜索引擎索引吗?
- scala - 如何避免while循环并在scala中返回
- haskell - Haskell - 涉及 2 个字符串列表的 foldr
- python - 当我声明大小限制时,为什么我的 tkinter 顶层很大?
- reactjs - 无法使用钩子映射获取的数据
- r - 在 R 中转换数据框数据
- angularjs - 鼠标悬停时将相同的线条颜色填充到多折线图上的圆圈,鼠标移出时从圆圈中删除颜色
- visual-studio-code - Error1 上传失败 vscode: "ser_open(): can't open device ".\COM11""
- python-3.x - AttributeError:“NoneType”对象没有属性“坐标”
- api - Pinterest GET v1/me/boards 开始返回授权在已批准的应用程序中失败