AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 747335
Accepted
djk
djk
Asked: 2016-01-08 02:45:30 +0800 CST2016-01-08 02:45:30 +0800 CST 2016-01-08 02:45:30 +0800 CST

负载平衡托管在 EC2 中的根域重定向 Web 服务器以删除 SPOF

  • 772

这可能看起来很晦涩,也可能很小众,但请耐心等待。

情况是:

  • www.domain.com 指向 EC2 中的基础设施,特别是 ELB
  • domain.com 指向 EC2 中的一个微型实例,并且是一个 nginx 服务器,其唯一目的是将所有请求重定向到 www.domain.com
  • 所述微实例是单点故障,因为只有其中一个

我们想要做的是删除 SPOF,以便让多个服务器运行此重定向。将根域设置为 CNAME 以使用 ELB 违反了我相信的 RFC,而且我不相信我们的 DNS 主机无论如何都会允许我们这样做。

鉴于这些限制,我们应该怎么做才能消除此 SPOF?诚然,如果它因任何原因消失,但企业希望减轻这种风险,影响很小。

domain-name-system
  • 2 2 个回答
  • 215 Views

2 个回答

  • Voted
  1. Serhii Balbieko
    2016-01-08T05:06:56+08:002016-01-08T05:06:56+08:00

    有更好的方法来处理顶点域,而不是在 EC2 上托管“重定向器”实例。

    您可以在 Amazon S3 上托管静态网站,可以将其配置为将您的请求重定向到特定域。如果您使用的是 Route53 - 有一个“别名”记录类型可以帮助您实现这一目标。其他 DNS 提供商也有类似的。

    按照此博客文章了解详细信息https://aws.amazon.com/blogs/aws/root-domain-website-hosting-for-amazon-s3/

    S3 是容错服务,因此您肯定会以相当低的成本移除您的 SPOF。

    • 3
  2. Best Answer
    Michael - sqlbot
    2016-01-08T18:16:53+08:002016-01-08T18:16:53+08:00

    如前所述,S3 静态托管是一个不错的选择,但它需要托管在 Route 53 中的别名记录……而且它不支持 TLS。

    可以通过在 S3 前面使用 CloudFront 为托管在 S3 存储桶上的站点提供 TLS(适用于支持 SNI 的浏览器),这可以完美运行,但还需要 Route 53 中的别名。

    请注意,别名不是一种 DNS 记录。Alias 是 Route 53 DNS 服务器中的一个内部配置指令,它表示“当我们在此处收到对该记录的请求时,我们将在内部(在 Route 53 数据库中)查找并返回与如果我们返回的结果相同的结果。实际上已经收到了另一份不同记录的请求。” 最后,它提供了一个看起来类似于 CNAME 的功能,但不是告诉解析器要将一个主机名视为另一个主机名,并查找另一条记录以获取更多信息,Route 53 在内部执行该查找步骤,使解析器对用于满足请求的实际机制一无所知......和这种内部(而非外部)查找机制是别名记录在区域顶点按需要工作的原因,而 CNAME 却没有。

    除非您有一个可以适应动态 IP 地址的 DNS 机制(如 S3 和 CloudFront 上的托管站点所需要的那样),否则没有消除 SPOF 的可靠方法,尽管其他一些 DNS 提供商支持类似于 Route 53 的别名记录的功能。例如,CloudFlare 将其称为“CNAME 扁平化”,其中他们的 DNS 服务器在收到对您的 A-Record 的查询时,会在后端查找不同的 A-Record(在不同的域中,例如来自 s3.amazonaws.com 或 cloudfront.net),然后将该答案返回给请求者。这实现了与别名相同的最终结果。对于第 3 方 DNS 服务器来说,这并不是真正的“内部”,但由于第二个请求是向后发送的,因此客户端解析器不会发现任何异常行为。

    2015 年 1 月,AWS 宣布了 EC2 Instance Auto-Recovery,它将拆除并重建一个未能通过 Cloudwatch 可用性检查的实例,创建一个具有相同“一切”的新实例——实例 ID、EBS 卷、弹性 IP 等.,并且此功能适用于多个实例类,包括 t2 类。

    或者,作为最后的手段,您可以通过配置多个这些重定向机器并在您的区域顶点配置多个 A 记录来实现循环“负载平衡” ,从而部分缓解 SPOF。这将减少但不能消除其中一台机器停机的影响,尽管这种解决方案的可行性在很大程度上取决于浏览器的行为。它不会被视为“高可用性”解决方案,但(也许)总比没有好。

    为了避免另一个重定向,如果可能的话,我想在那里进行 TLS。

    如果我正确理解此评论,那么您实际上必须在那里执行 TLS。如果我将浏览器指向https://example.com,则该端点必须使用 TLS并且具有有效的主机名证书,否则链接会被有效破坏——如果服务器无法以保持浏览器开心。

    • 2

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve