loop_detect_cdn_id
loop_detect_cdn_id 指令为您的 CDN 集群指定一个唯一标识符,用于跟踪请求循环。
CDN-Loop header support for request loop prevention
·
httpserverlocation
语法loop_detect_cdn_id string;
默认值openresty
上下文http, server, location
参数1
说明
loop_detect_cdn_id 指令是 NGINX 中 ngx_http_loop_detect_module 的一部分,旨在防止在使用内容分发网络 (CDN) 时可能发生的请求循环。该指令允许您为特定的 CDN 集群设置唯一标识符,这对于正确解析 CDN-Loop 头是必要的。该标识符有助于 NGINX 管理和跟踪已通过 CDN 转发的请求次数,从而确保符合配置的循环检测设置。
当指定此指令时,其值会与 CDN 相关的 HTTP 头一起使用。NGINX 会解析 CDN-Loop 头,该头用于跟踪请求通过不同 CDN 节点被转发的次数。每当请求被转发时,NGINX 会根据 loop_detect_cdn_id 设置的唯一标识符进行检查,以确定是否已超过由 loop_detect_max_allow_loops 指令控制的最大允许跳数。如果超过最大值,请求将收到一个指定的状态码,该状态码可以通过 loop_detect_status 指令进行设置。
配置示例
location / {
loop_detect on;
loop_detect_cdn_id my_cdn_id;
loop_detect_max_allow_loops 10;
proxy_set_header CDN-Loop $loop_detect_proxy_add_cdn_loop;
proxy_pass http://example.upstream.com;
}⚠
如果未将 cdn_id 设置为唯一值,当多个 CDN 一起使用时,可能导致环路检测不正确。
⚠
确保在适当的上下文中启用了 loop_detect 指令,以使 loop_detect_cdn_id 生效。