{{i18nTranslate('_layout.t11')}} {{i18nGetLang()==='zh' ? 'EN' : '中文'}}

# L2节点

> 此功能为商业版功能

在v0.4.7以后，可以将一些节点设置为L2级别，称为L2节点，作用是当其他节点（L1节点）找不到目标缓存时，自动通过L2节点集中回源，可以大幅减少回源次数，在实践中往往可以提升20%-40%的缓存命中率。

## 开启L2节点

在节点–“节点设置”–“基础设置”–“更多选项”–“级别”中选择L2节点：

设置后，当前L2级别节点所在节点分组下的其他节点（L1节点）如果找不到用户所请求的缓存时，会自动通过L2节点回源：

                   Origin Server
                     /|\
                      |
                      |
                   L2 Node
                     /|\
                      |
    |-----------------|--------------|
    |                 |              |
    L1 Node 1 |   L1 Node 2  |   L1 Node 3
    |                                |
    |--------------------------------|
                     /|\
                      |
                  User Client

L2节点在回源成功并将内容写入到本地的同时，也会同步将内容发送给L1节点，L1节点收到内容后，将内容发送给用户的同时，也会写入本地。L2节点和L1节点的缓存时间将是同步的。

由于主要通过L2节点回源，所以L2节点通常需要更好的硬件（建议使用SSD硬盘）和带宽配置。

## 多个L2节点

一个集群或分组下可以设置多个L2节点，如果一个L1节点有多个L2节点可用，将会每次都随机选取一个作为父节点回源。

从v0.5开始，在用户发起请求失败时，如果有多个L2节点，也会自动尝试下一个L2节点，以提升请求成功率。

## L2节点作用范围

如果L2节点在一个分组里，那么它只会当前分组下的其他L1节点有效，也就是说，其他分组里的节点或者没有设置分组的节点将无法用到此节点。

如果L2节点不在一个分组里，那么它会对整个集群下的其他L1节点有效，即本集群下的所有L1节点都可以用到此节点，除非一个L1节点在一个分组里，且这个分组里已经设置了一个或多个L2节点。

## IP地址

在默认情况下，边缘节点访问L2级别节点时，将使用L2节点设置的”IP地址”。

在v0.5.2以后，可以为L2级别节点专门指定一组被边缘节点访问的IP地址，方便和节点公开的IP地址分开；如果你的边缘节点和L2级别节点在同一个局域网，那么就可以在L2级别访问地址中填写局域网的IP，以节约带宽和提升访问速度：

在这个示例中，同个界面上的IP地址仍然可以填公网地址，是用户访问的地址；而”L2级别访问地址”是供别的边缘节点访问地址。

## 域名解析

默认情况下，L2节点也会自动在域名解析中增加对应的记录，同普通的边缘节点一样，类似于：

    local.goedge.cloud	A	8.8.8.8

这样，L2节点同时也可以直接被用户访问。

从v0.5.2开始起，如果你不想让L2节点能直接被用户访问到，可以在”集群设置” – “DNS设置” – “更多选项” – “包含Ln节点”，取消勾选，即表示域名解析中不包含L2及以上级别节点，这样用户通过域名解析分配到的节点就只能是普通的边缘节点（下图示例中默认是勾选的，如果想取消，点击取消勾选即可）：

## 非缓存流量走L2节点

默认情况下，只有缓存流量才走L2节点，如果你想让你的网站中非缓存流量也走L2节点，可以在对应集群 “设置” – “网站设置” 中选中 “强制Ln请求” 选项并保存。

## 常见问题

### L2节点需要单独开放端口吗？

L2节点的访问方法、端口和普通边缘节点是一样的，除了服务自己设置的端口之外（比如常见的80/443），不需要单独设置别的端口。

### L2节点的WAF会影响别的节点访问吗？

不会。在别的边缘节点访问L2节点时，会自动停用WAF，不会导致别的节点因为WAF而被封禁。

### L2节点支持TCP负载均衡和UDP负载均衡吗？

不支持，TCP负载均衡、UDP负载均衡无法使用L2节点。

{{i18nTranslate('_layout.t27')}}
{{i18nTranslate('_layout.t12')}}