您可以在网络堆栈的不同层级对流量进行负载均衡,例如:
Layer 7 负载均衡器根据每个 HTTP/HTTPS 请求中的信息(HTTP 标头、URI、cookie、数据类型等)将流量定向到特定 endpoint。
当客户端访问您的应用程序时,Cloudflare 将其请求定向到健康的 endpoint(由您的流量导向策略和 endpoint 权重决定)。
当发往主机名的流量通过 Cloudflare 代理时,Cloudflare 执行 layer 7 负载均衡。在 Load Balancing(负载均衡) 仪表板中,这些负载均衡器标记为橙色云。
与 DNS-only 负载均衡相比,layer 7 负载均衡:
- 通过隐藏 endpoint IP 地址保护 endpoint 免受 DDoS 攻击。
- 提供更快的故障转移和更准确的路由,否则可能受 DNS 缓存影响。
- 与其他 Cloudflare 功能(如缓存、Workers 和 WAF)集成。
- 减少针对 Cloudflare 的权威查询,可能为按用量计费的用户节省成本。
- 支持自定义会话亲和性和 endpoint drain。
- 更准确地按地理位置定位流量,使用与发起请求的用户关联的数据中心,而非与用户递归解析器关联的数据中心。
- 通过 Private Network Load Balancing 支持私有 IP 地址。
DNS-only 负载均衡器通过响应客户端 DNS 查询返回特定 IP 地址来路由流量。
当客户端访问您的应用程序时,Cloudflare 提供健康 endpoint 的地址(由您的流量导向策略和 endpoint 级导向策略决定)。但是,Cloudflare 依赖 DNS 解析器遵守短 TTL 以重新查询 Cloudflare DNS 获取更新的健康地址列表。如果客户端缓存了 DNS 响应,他们将前往之前的目的地,可能忽略负载均衡器。
当发往主机名的流量未通过 Cloudflare 代理时,Cloudflare 执行 DNS-only 负载均衡。在 Load Balancing(负载均衡) 仪表板中,这些负载均衡器标记为灰色云。
如果您的负载均衡器附加到用于 MX 或 SRV 记录的主机名——而非 A、AAAA 或 CNAME 记录——其代理模式应为 DNS-only。
与代理 layer 7 负载均衡相比,DNS-only 负载均衡:
- 不会隐藏 endpoint IP 地址,使其容易受到 DDoS 攻击。
- 执行较慢的故障转移和不太准确的路由,因为它必须依赖 DNS 解析器和缓存设置。
- 无法与其他 Cloudflare 功能(如缓存、Workers 和 WAF)集成。
- 增加针对 Cloudflare 的权威查询,可能为按用量计费的用户增加成本。
- 不支持会话亲和性。或者,您可以使用 DNS persistence。
- 如果可用,基于与 ECS 源地址关联的数据中心进行地理位置定位。如果不可用,则基于用户的递归解析器进行地理位置定位,这有时会导致基于延迟的导向出现问题。
- 不支持 Private Network Load Balancing。
Layer 4 负载均衡器通过将流量转发到特定端口或 IP 地址来路由流量。
Cloudflare 目前仅作为 Cloudflare Spectrum 的一部分支持 layer 4 负载均衡。