amazon-web-services - 允许在 AWS 上托管的多租户 SaaS 平台上的租户自定义域名
问题描述
概述
我正在 AWS 上构建一个多租户 SaaS 平台。目前的部署架构非常简单。
- 我有一个 ELB(所有流量都在这里)
- 我的 EC2 实例很少(托管我的 java + angular 应用程序)。这是在链接到 ELB 的 Autoscaling 组下。
- 我在 RDS 中有一个 MySQL 集群,EC2 与之通信。
一切都在 VPC 中,EC2 和 RDS 在私有子网中,
问题
我希望我的客户(租户)拥有自己的域名。例如,假设现在可以通过 URL http://xyz-elb.amazon.aws.com访问我的应用程序
我想让我的客户使用
- http://tenant1.com
-
等等。我知道这是可能的,因为我在不同的多租户 SaaS 应用程序中看到了这一点。
到目前为止我所做的研究: 我读到了可以完成它的反向代理,但是我没有得到任何可靠的链接。尝试阅读有关 HAProxy 的信息,但我觉得我走错了方向。
我需要的
关于进行域映射的不同方法的专家意见
解决此特定问题的资源列表和链接
你们这里的任何帅哥的任何实践经验或案例研究
一个便宜的解决方案(我不想通过似乎不符合我需要的 Amazon API Gateway / Route53 策略)
非常感谢您阅读我的问题。并提前感谢您对此做出的回复。
解决方案
只需在每个租户域中创建一个 DNS CNAME 资源记录,指向您的应用 ELB DNS 名称。
我更喜欢将 ELB DNS 名称别名为我的服务域,然后将租户域别名为它。例子:
app.example.com IN CNAME my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com
然后在我的租户 DNS 中:
app.tenant1.com IN CNAME app.example.com。
此别名允许您在需要时更改 ELB 端点,而无需更改所有客户端的 DNS 记录。
推荐阅读
- android - Kotlin 中未解决的参考 WearableRecyclerView.Adapter 错误
- blogger - Blogger 最近的帖子小部件图像调整大小 /s72-c
- css - 删除dashboardSidebar中splitLayout中列之间的间隙
- pywinauto - pywinauto 在 windows 上安装应用程序
- javascript - (不和谐)SQLite 2 值 1 列错误
- c# - 空间域中的图像卷积
- php - 在 jquery 智能向导上添加功能
- c++ - jsoncpp写入只有一个元素的json数组
- github - 当 Circle CI 跳过测试时,Github 如何与 Circl-CI 配合使用?
- elasticsearch - 获取从 multiJson 对象创建的 PostData 字符串(json)表示