首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSL上的DNS轮询

SSL上的DNS轮询
EN

Stack Overflow用户
提问于 2009-12-13 02:36:13
回答 4查看 5.5K关注 0票数 4

出于冗余和负载共享的目的,我们正在添加第二个web服务器。所有连接都强制使用SSL,目前不可能添加专用设备。

我想使用轮询DNS,两个服务器使用不同的I响应相同的域(我们有一个通配符SSL证书,所以这是可以的)。我可以让DNS以随机/循环的顺序返回,没有问题。

在使用SSL时,这是不是一个糟糕的设置?

我们的用户模式是一致的--用户将持续使用web应用程序8-10个小时。我们希望每个页面查看尽可能快,我担心的是用户可能会不断地在服务器之间切换,这可能会否定任何SSL握手缓存/保持活动状态。

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2009-12-13 04:17:07

首先,SSL能够恢复较早的会话,因此在服务器之间切换将花费您每次请求几百毫秒的时间(如果多个客户端同时访问站点,则时间更长,因为这是我们讨论的CPU时间)。

然而,客户端是否真的会翻转取决于- DNS“负载平衡”是一项繁琐的业务:

  • 如果你的许多用户使用相同的递归命名服务器,他们将得到相同的“第一IP”,因此没有负载平衡
  • 如果DNS记录具有高的TTL (几个小时),缓存命名服务器将存储IP地址的特定排列,直到它们过期(好的,只要你的用户不都使用相同的递归命名服务器你的用户配置了多个递归命名服务器,如果每个命名服务器有不同的“第一IP”(坏)
  • 如果你没有删除“坏”记录的机制,并且低TTL,则它们可能会翻转。然后,如果一台服务器宕机,50%的客户端将获得“坏”服务器,并且必须等待超时,然后才能看到您的站点

正如你所看到的,根据你是更关心冗余/故障转移还是负载平衡,有很多不同的权衡;DNS在这里并不是最好的工具--你确实需要服务器使用反向代理或者像Heartbeat这样的东西来共享IP (假设你是基于Linux的)。

顺便说一句:如果两个服务器都响应相同的域,那么您不需要通配符证书,尽管如果您打算在多个服务器上使用证书,CA通常会收取更高的费用。

票数 2
EN

Stack Overflow用户

发布于 2011-09-23 02:39:03

TLDR:你会没事的。SSL重新协商不应该发生得足够频繁,以至于您的最终用户无法察觉。

Rant从这里开始:

使用DNS的负载分布是一个经常被误解的话题,它导致了许多轶事证据和稻草人的争论。我参加过太多这样的会议了。

以下是我通常解决这些争论的方法:

“哇,是的,这听起来真的很开放,很长的戏剧性停顿,但它真的不会那么糟糕,因为谷歌使用它。”

代码语言:javascript
运行
复制
$host encrypted.google.com
encrypted.google.com is an alias for www3.l.google.com.
www3.l.google.com has address 74.125.224.195
www3.l.google.com has address 74.125.224.202
www3.l.google.com has address 74.125.224.193
www3.l.google.com has address 74.125.224.197
www3.l.google.com has address 74.125.224.207
www3.l.google.com has address 74.125.224.206
www3.l.google.com has address 74.125.224.203
www3.l.google.com has address 74.125.224.204
www3.l.google.com has address 74.125.224.196
www3.l.google.com has address 74.125.224.199
www3.l.google.com has address 74.125.224.201
www3.l.google.com has address 74.125.224.194
www3.l.google.com has address 74.125.224.192
www3.l.google.com has address 74.125.224.200
www3.l.google.com has address 74.125.224.205
www3.l.google.com has address 74.125.224.198

更新:

此设置是否冗余?

它在工程意义上并不是固有的冗余,因为如果这些in中的一个发生故障,它将继续被服务于客户,直到执行DNS区域改变并且所有下游高速缓存到期。尽管如此,大多数浏览器都足够聪明,可以在这种情况下尝试另一个ip - reference

此外,可以容易地设计一种系统,该系统将通过简单的ip接管将故障实例的ip路由到服务设备,而不是要求DNS区域改变来移除故障节点。

此设置有弹性吗?

是的,弹性是通过最小化您的故障域实现的。回到我们的单个ip故障示例(请记住,这些ip可能代表由数百台服务器甚至整个数据中心支持的负载均衡器),客户命中该ip的可能性为1/16,即~6% (使用上面的google示例)。这在本质上比具有单个A地址的系统更具弹性,后者将影响100%的用户,或者具有2个A记录的系统,在该系统中,用户命中故障资源的概率为50/50。

票数 2
EN

Stack Overflow用户

发布于 2009-12-13 10:39:44

不必为那事担心了。有多个级别的DNS缓存,因此用户不会在每次请求时在2个IP之间切换。每个客户端的IP将保持几个小时不变。

我们有一个相反的问题。当服务器宕机时,用户仍然拥有错误的IP。我们将TTL设置为1分钟,但很少有浏览器支持它。由于这个问题,对于同一网络上的负载平衡,VIP是比DNS更好的选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1894313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档