我目前收到大量流量(每天 100 多万次页面浏览)。我在 Digital Ocean 的负载均衡器后面设置了四台 16GB RAM 8 CPU nginx 服务器(这是他们添加的新功能)。当我通过 IP 直接访问每台服务器时,网站加载速度很快。但是,如果我访问域名,似乎会有 1-3 秒的延迟。这是负载均衡器无法正常工作吗?还是域名问题?请注意,我使用的是 Round Robin 和 Sticky Sessions。关于我的域名设置,我需要检查什么吗?
答案1
这里可能有很多因素在起作用。以下是使用负载均衡器的大致步骤
- 负载均衡器的 DNS 查找
- 连接到负载均衡器的时间。如果是 https,通常需要几次往返,因此延迟会起到一定作用
- 负载均衡器处理时间
- 负载均衡器 DNS 查找服务器的时间(可能已缓存)
- LB 打开与服务器的连接(可能重用现有的连接)
- LB 将请求传输到服务器
- LB 等待服务器处理请求
- LB 收到响应
- LB 将响应发送回客户端
以下是不使用负载均衡器的步骤
- 连接到服务器。如果是 https,通常需要几次往返,因此延迟会起到一定作用
- 将请求传输到服务器
- 等待服务器处理请求
- 接收响应
也就是说是 9 个步骤而不是 4 个步骤,这是一个显著的差异。
您可以使用以下方法比较两者网页测试,这将为您提供更多信息。进行测试,然后如果您需要帮助解释结果,请编辑您的帖子,然后在评论中标记您希望看到更新的任何人。
正如 Rowan 在下面指出的那样,延迟至少与带宽同样重要。数据中心的延迟非常低,几乎可以忽略不计,但每次往返服务器都需要时间。TLS 1.3 有助于解决此问题,使用将内容放在更靠近用户的位置的内容分发网络 (CDN) 在许多情况下也有帮助。