【发布时间】:2016-11-15 20:50:43
【问题描述】:
问题
我有点不知所措,如果我想将苹果与面包进行比较,请指出。
我想了解人们是如何做这种对我来说似乎很神奇的特定模式(或一组模式)的。
注意:下面的具体问题(答案需要是对此的解决方案)
图案
1。银河流星托管
在DNS config 中,他们要求我们将 CNAME 从 www.customer1.com(您)设置为 galaxy-ingress.meteor.com。
这让我大吃一惊,他们如何能够根据源域重定向多个站点。其中许多可能是高流量。这也应该是高性能的。
2。 Github.com 页面
只需在他们的设置中添加您的域,并将 CNAME 设置为他们为您提供的恒定域。完成。
注意:我不太了解细节 - 转发到常量域或您的
GH pages user domain,如user.github.io,不记得准确了。
3。 Gitlab.com
他们给你一个 IP 来指向一个A record,不过,这对我来说似乎对正常运行时间不太友好。
PS:我爱这些家伙,Git + CI + docker repo 免费,我一定是在做梦。
4。 Heroku
- 通过命令行或 Web gui 添加域。
- 将 CNAME 添加到您的 app-name.heroku 中
这(就像上面的几个)是最好的,你会得到一个默认的xyz.herokuapp.com URL,即使没有自定义域也可以使用。
5。浪涌.sh
- 将域添加到一个名为 CNAME 的文件中(我怀疑,最初,这会起作用,它太简单了:))
- 将 CNAME 添加到您的 xyz.surge.sh 网址
6。模数.io
(我可以继续使用这个列表)
具体问题
我想根据上面的设置
- 当 www.website1.com 有一个 CNAME 指向 ingress.yourwebsite.com 时,显示与其网站相关的内容
- 当 www.website2.com 有一个 CNAME 指向 ingress.yourwebsite.com 时,显示与其网站相关的内容
- 网址应显示 www.website1.com 或 www.wesbite2.com 而不是 ingress.yourwebsite.com
- 以编程方式轻松添加新网站
- 高性能和正常运行时间友好
- 在 IaaS(数字海洋、AWS 等)提供商上实施。 (尽管正如一个答案所暗示的那样,您可以使用 PaaS(Heroku、Modulus 等)提供者的 API,这不是作弊,因为这样做一无所知,因为 API 抽象了实现)
Performant:我的意思是,如果可以在 DNS 层完成,您就不会在应用层执行此操作。
正常运行时间友好:我的意思是,如果服务器实例出现故障,该服务不会停止工作
奖金
如何为 website1.com 和 website2.com 进行这项工作(注意没有 www.)?
如www.website1.com 转发到website1.com(或其他方式,取决于您的喜好)
我想像谷歌应用程序一样在内部进行设置,我不希望用户在他们的 DNS 上进行花哨的设置,比如根目录下的 CNAME 等。
技术偏好
如果可能,请使用其中之一,而不是使用它们的竞争对手。当您通过此操作做出次优选择时,请提及。
按顺序:
- MeteorJS
- NodeJS
- Javascript
- Cloudflare.com API
- Nginx
- 任何 github.com 高星(比如 1k+)的 repo
PS:我提到这个偏好不是一个 dou*he,而是重复使用我已经知道的东西。
可能的解决方案(我不是在寻找):
- iframe(糟糕的 SEO 等)
- mod_rewrite(是 github 和其他人使用 mod_rewrite,似乎是应用级别和 kludgy)
更新 #1(2016 年 7 月 13 日)
我尝试过的
- 使用自定义域(例如 xyz.com)将流星JS 应用程序部署到 heroku,并尝试以编程方式路由 a.xyz.com 等,出现此域中不存在 herokuapp 等错误。
- 阅读了很多关于 hoerku 通配符域的信息,但没有帮助
- 使用自定义域(例如 xyz.com)将meteorJS 应用程序部署到meteor.com 并尝试以编程方式路由a.xyz.com 等,出现错误,例如该域中不存在meteor 应用程序。
- 他们没有提供对 DNS 的访问权限(我认为这需要在这个地方工作)
- meteor.com 免费托管已关闭
- 我猜这应该比我制作的缠结的毛线球更容易。
- 如果我可以像
website1.yourwebsite.com这样以编程方式设置CNAMEs(使用cloudflare.com API,这可能吗?)然后当有人点击website1.yourwebsite.com时,我应该知道基于URL(应用程序级别)提供哪些内容) 那么我可以对实际主机做一个301 redirect吗? URL 在301 redirect上更改。该死!
- 刚刚偶然发现https://en.wikipedia.org/wiki/Virtual_hosting,正在阅读。
更新 #2(2016 年 7 月 30 日)
- 更新了问题以阐明这需要在 IaaS(数字海洋、AWS 等)上实施。如果您使用的是 PaaS(Heroku、Modulus 等)提供商的 API,您仍然不知道这种模式是如何实现的,它已经被 API 抽象掉了。
【问题讨论】:
-
这看起来很好研究,但不清楚您期望什么样的答案?也许你会在单独的、具体的问题上取得更大的成功。
-
@DusanBajic 我正在寻找具体问题的答案。将更新问题以更清楚地说明这一点
标签: heroku dns github-pages cloudflare meteor-galaxy