跳转到内容
搜索文档

隧道可用性和故障转移

最后更新 查看 MarkdownAgent 设置

我们的轻量级开源连接器 cloudflared 旨在提供高可用性,无需任何额外的配置要求。当您运行隧道时,cloudflared 会在源服务器与 Cloudflare 网络之间建立四个仅出站连接。这四个连接分别通往分布在至少两个不同数据中心的四个不同服务器。该模型确保了高可用性并降低了单个连接失败的风险。这意味着,即使单个连接、服务器或数据中心离线,您的资源也将保持可用。

cloudflared 副本

您可以部署额外的 cloudflared 实例来实现可用性和故障转移。这些实例被称为副本。每个副本都会建立四个连接到 Cloudflare 的新连接,为您的源站提供额外的入站点。所有副本都指向同一个隧道,因此,如果运行 cloudflared 的单个主机宕机,其余副本仍会继续提供流量服务。

graph LR
    C((Cloudflare))
    subgraph E[您的网络]
        cf1["cloudflared <br> (tunnel-01 的副本)"]
        cf2["cloudflared <br> (tunnel-01 的副本)"]
        S1[应用程序]
        cf1-->S1
        cf2-->S1
    end
    C -- "连接 x 4 <br>"--> cf1
    C --> cf1
    C --> cf1
    C --> cf1
    C -- 连接 x 4--> cf2
    C --> cf2
    C --> cf2
    C --> cf2

副本不支持流量控制(例如轮询或基于哈希的路由)。当请求到达 Cloudflare 时,它会被转发到地理位置最近的副本。如果该连接失败,Cloudflare 会尝试使用其他副本,但不能保证选择哪一个。如果您需要智能流量分配,请改用 Cloudflare 负载均衡器

何时使用 cloudflared 副本

  • 为单个隧道提供额外的可用性点。
  • 在您的网络中分配故障转移节点。
  • 不中断服务的情况下更新隧道的配置。

有关设置说明,请参阅部署 cloudflared 副本

Cloudflare 负载均衡器

Cloudflare 负载均衡会主动将流量从不健康的源站引开,并根据您选择的分流算法智能分配流量负载。与全部使用相同隧道的 cloudflared 副本不同,典型的负载均衡器设置需要创建多个隧道。大多数客户会为每个数据中心创建一个隧道,并为每个隧道创建一个负载均衡器池。

graph LR
    accTitle: Load balancing traffic to applications behind Cloudflare Tunnel

    A[Internet] --> C{Cloudflare <br> 负载均衡器}
    B[Cloudflare One Client] --> C
    M[Cloudflare WAN] --> C
    C -- Tunnel 1 --> cf1
    C -- Tunnel 2 --> cf2
    subgraph F[数据中心 2]
        cf2[cloudflared <br> 服务器]
        S3[应用服务器]
        S4[应用服务器]
        cf2-->S3
        cf2-->S4
    end
    subgraph E[数据中心 1]
        cf1[cloudflared <br> 服务器]
        S1[应用服务器]
        S2[应用服务器]
        cf1-->S1
        cf1-->S2
    end

何时使用负载均衡器

  • 根据延迟、地理位置或其他信号智能引导流量。
  • 如果隧道达到非活动状态,则实施故障转移逻辑。
  • 当隧道达到非活动状态时,获取健康警报
  • 在您可通过 Cloudflare Tunnel 访问的源站或端点之间更均匀地分配流量。

有关设置说明,请根据您的使用场景参阅公共负载均衡器私有网络负载均衡

负载均衡器的类型

您可以与 Cloudflare Tunnel 端点一起使用两类负载均衡器:

  • 公共负载均衡器将来自互联网的流量引导至发布在 Cloudflare 域上的应用程序。如果您的服务是通过 Cloudflare Tunnel 经由 发布的应用路由 服务的,请使用此方法。
  • 私有负载均衡器将流量从 Cloudflare One Client、Cloudflare WAN 和其他 上路(on-ramp)引导至您私有网络上的内部 IP。如果您的服务是通过 CIDR 路由连接到 Cloudflare Tunnel 的,请使用此方法。

这篇文档对您有帮助吗?