valid_referers

`valid_referers` 指令定义了一个允许的 referer URL 列表,用于传入请求。 — NGINX HTTP Core

valid_referers
serverlocation
语法valid_referers string | blocked | none;
默认值none
上下文server, location
模块NGINX HTTP Core
参数1+

说明

`valid_referers` 指令用于指定一组可以访问你 NGINX 配置中某个资源或位置的有效 referer URL。当对某个资源发起请求时,NGINX 会将 HTTP `Referer` 头与指定的有效 referer 列表进行比对。如果 referer 不在指定列表中,依据配置的行为(通常通过 `deny` 指令)可能会拒绝该请求。 该指令接受多个参数,允许你根据需要指定任意数量的有效 referer 模式。referer 可以指定为完全限定的域名、使用通配符的模式(例如 `*.example.com`),或者是 IP 地址。如果 referer 未列出或不匹配任何已定义的模式,NGINX 可以根据 referer 的存在与否配置为允许或拒绝该请求。 通常与 `deny` 和 `allow` 指令配合使用,`valid_referers` 在基于请求来源控制访问方面非常重要,有助于防止盗链或对资源的未授权访问。

配置示例

location /protected {
    valid_referers none blocked;
    valid_referers https://www.example.com https://example.com;
    # Optionally deny requests without a valid referer
    if ($invalid_referer) {
        return 403;
    }
}

在使用通配符时要小心,因为它们可能无意中匹配到比预期更多的 URL。

确保已为没有 referer 的请求配置好处理,尤其是在将 'blocked' 作为参数时。

如果希望在没有 referers 的情况下允许访问,请记得包含 'none'。