loop_detect_cdn_id

Директива loop_detect_cdn_id задаёт уникальный идентификатор вашего CDN-кластера для отслеживания циклов запросов.

Синтаксисloop_detect_cdn_id string;
По умолчаниюopenresty
Контекстhttp, server, location
Аргументы1

Описание

Директива loop_detect_cdn_id является частью модуля ngx_http_loop_detect_module в NGINX и предназначена для предотвращения циклов запросов, которые могут возникать при использовании CDNs. Эта директива позволяет задать уникальный идентификатор для конкретного CDN-кластера, который необходим для корректного разбора заголовка CDN-Loop. Идентификатор помогает NGINX управлять и отслеживать количество запросов, прошедших через CDN, обеспечивая соблюдение настроек обнаружения циклов.

Когда эта директива задана, значение используется совместно с HTTP-заголовками, связанными с CDN. 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 вступила в силу.

← Ко всем директивам