多层网络

    如何使用多层网络呢,首先我们需要创建多层网络的回源策略, 在「全局配置」=>「多层网络」里,我们可以看到所有的策略的列表,在这里我们先点击新建策略

    每个多层网络回源策略,都需要一个唯一的名字,这样用于方便区分使用, 比如这里我们输入 ,表示这个策略适合源站是在中国境内的场景。

    然后是网关集群网络拓扑,源站在左边,往后右这一列是所有网关集群的名字, 对的,多层网络的回源拓扑是以网关集群为单位的,一般来说一个网关集群就对应一个 IDC 机房, 初始情况下所有网关集群是直接回源站的。

    多层网络 - 图2

    我们可以拖动网关集群来修改网络拓扑,比如把「Tokyo」拖到 「HongKong」上方, 「Tokyo」就会挪到 「HongKong」的后面, 意味着这个策略下 「Tokyo」的回源请求会先发到「HongKong」,再由「HongKong」回真实的源站。

    我们还可以拖动「Tokyo」上的「备份」到「Peking」上方,「Tokyo」的备份就会连线到「Peking」, 当「Tokyo」到「HongKong」的连接失败,「Tokyo」会用再次尝试发送回源请求到「Peking」。

    如果没有配置备份的话,也会尝试直接请求真实的源站。

    多层网络 - 图4

    同理我们也可以把「NewYork」配置为经过「HongKong」回源。

    点击创建后回到策略列表页。

    我们也可以在列表页里,点击策略的名字进入修改策略的页面。

    多层网络 - 图6

    有了多层网络策略之后,我们就可以在应用内的 反向代理规则 中选择使用的多层网络策略了。

    另外,不同的应用可以使用同一个多层网络策略,同一个应用的不同规则也可以使用不同的网络策略。

    好了,怎么使用介绍完了,那么使用「多层网络」可以有哪些好处呢

    比如我们用 OpenResty Edge 构建一个全球 CDN 网络对最终用户提供就近访问, 但是源站只有一个,那么边缘的 Edge 网关节点跟源站可能隔着很复杂的网络情况。

    比如上述示例中的「NewYork」到源站的网络可能会不够稳定,我们让「NewYork」先回「HongKong」,再由「HongKong」回源站。

    当然,我们是假定「NewYork」到「HongKong」的网络会好过一般的线路, 比如通常情况下同一个云主机厂商的不同机房之间线路会有专门的维护,可以认为好过一般的线路。

    如果我们还同时开启了缓存,那么回源的请求在经过中间节点的时候,也是可以缓存的。

    比如上述示例中的「NewYork」到「HongKong」的回源请求,是可以利用「HongKong」上的缓存资源的, 并且如果「HongKong」也有直接服务终端用户的话,来自终端用户和「NewYork」的请求缓存是通用的。

    因为缓存命中的请求是无法攻击源站的,这样可以充分利用边缘的缓存来减少 WAF 的执行次数, 从而减少整体的 CPU 计算资源消耗。