Рейтинг:0

Перенаправление Nginx не работает при использовании cloudflare

флаг cn

Я использую nginx для перенаправления, если пользователь напрямую обращается к изображению через браузер. Проблема в том, что это не работает, когда вы используете cloudflare.

конфиг нгинкс

    location ~ "^/c/600x1200_90_webp/img-master/img/\d+/\d+/\d+/\d+/\d+/\d+/((?<filenum>\d+)[^/]+\.( jpg|png|webp))$" {
    прокси_пароль http://xxx.xxx.xxx.xxx:8081;
    действительные_рефереры имена_серверов example.com;
    если ($invalid_referer = "1") {
    add_header Cache-Control «без кеша»;
    вернуть 301 https://example.com/detail?id=$filenum; 
}
    }

Можно ли как-то исправить это, не отключая cloudflare? Я хочу по-прежнему иметь возможность кэшировать и перенаправлять

Рейтинг:0
флаг us

Cloudflare кэширует ответ от вашего nginx и предоставляет его посетителям напрямую, без доступа к вашему nginx.

Это означает, что ваша конфигурация nginx не может использоваться для выборочного обслуживания различного контента на основе заголовка реферера.

У Cloudflare есть собственный Защита от хотлинка функция, которая может делать то, что вам нужно.

Если этого недостаточно, вы можете использовать Cloudflare Workers для реализации нужной политики. Однако для этого требуется знание того, как обрабатываются HTTP-запросы, и тщательная работа, чтобы все работало гладко.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.