Loading...

Справка CDN.com.tr

Подключение к источнику: реальный IP посетителя, закрытие доступа к источнику, WebSocket и тайм-ауты

Edge-серверы передают IP-адрес посетителя в заголовке X-CDN-Client-IP. Открывайте доступ к источнику только для CDN с помощью секретного заголовка, который вы добавляете в каждое правило. Настраивайте WebSocket и долгие запросы для каждого правила отдельно.

Подключение к источнику: реальный IP посетителя, закрытие доступа к источнику, WebSocket и тайм-ауты

Edge-серверы передают IP-адрес посетителя в заголовке X-CDN-Client-IP. Открывайте доступ к источнику только для CDN с помощью секретного заголовка, который вы добавляете в каждое правило. Настраивайте WebSocket и долгие запросы для каждого правила отдельно.

Сценарии использования

Команда запускает веб-приложение с авторизацией на собственном сервере и размещает перед ним CDN и WAF. Они хотят видеть реальный IP посетителя в своих журналах, отклонять запросы, которые приходят не через CDN, и сохранить работу WebSocket-соединений.

Порядок действий

  1. Настройте приложение так, чтобы оно читало реальный IP посетителя из заголовка X-CDN-Client-IP.
  2. Сгенерируйте длинное случайное значение. Впишите одну и ту же строку в поле Заголовки, отправляемые на источник каждого правила доставки в вашем аккаунте, например X-CDN-Auth <значение>.
  3. После того как заголовок заработал во всех правилах и ваш домен указывает на CDN, отклоняйте на источнике запросы без этого заголовка.
  4. Для путей, использующих WebSocket, создайте отдельное правило и включите Разрешить подключения WebSocket. Для долгих запросов увеличьте значение Тайм-аут ответа источника (секунды).
  5. Если ваш API использует PUT, PATCH или DELETE, добавьте эти методы в список WAF: Разрешённые HTTP-методы.

Проверки

  • Реальный IP посетителя приходит в заголовке X-CDN-Client-IP. Он содержит одно значение, и edge-сервер перезаписывает его при каждом запросе; заголовок с тем же именем, отправленный посетителем, не используется. Значением также может быть адрес IPv6.
  • Edge-серверы также отправляют X-Real-IP и X-Forwarded-For. Если вы используете X-Forwarded-For, берите крайнее правое значение, а не первое; значения слева может вписать сам посетитель.
  • Заголовки, отправляемые на источник задаются для каждого правила отдельно: один заголовок на строку, в формате Header-Name value. Когда вы добавляете новое правило, добавьте в него и секретный заголовок; иначе источник будет отклонять запросы этого правила.
  • Сделайте значение секретного заголовка случайным, не менее 32 символов, только буквы и цифры. В правилах, которые подключаются к источнику по HTTPS, заголовок передаётся в зашифрованном виде.
  • Полагайтесь на секретный заголовок, а не только на список IP-адресов для закрытия источника. Текущие адреса edge-серверов, связанных с вашим аккаунтом, мы сообщаем по запросу.
  • В правиле с включённой опцией Разрешить подключения WebSocket соединения доходят до источника и остаются открытыми, пока идёт передача данных; ответы на этом пути не кешируются. WebSocket нельзя включить в правиле, которое оптимизирует изображения, поэтому для пути WebSocket создайте отдельное правило.
  • Тайм-аут ответа источника по умолчанию составляет 60 секунд: если источник не отправляет данные в течение 60 секунд, запрос завершается ошибкой 504, а простаивающее WebSocket-соединение закрывается. Вы можете задать это значение для каждого правила в диапазоне от 1 до 3600 секунд. Пока данные передаются, общая длительность соединения не ограничена.
  • На домене ваших приложений Managed Container WebSocket включён по умолчанию, а тайм-аут составляет 300 секунд, если правило не задаёт другое значение.
  • При включённом WAF по умолчанию разрешены методы GET, HEAD, POST и OPTIONS. Проверка JavaScript применяется только к запросам страниц из браузеров и не влияет на запросы API.

Часто задаваемые вопросы

Как проверить секретный заголовок в Apache или nginx?

В Apache добавьте строки RewriteEngine On, RewriteCond %{HTTP:X-CDN-Auth} !=<значение> и RewriteRule ^ - [F] в самое начало файла .htaccess. В nginx добавьте if ($http_x_cdn_auth != "<значение>") { return 403; } в блок server. Включайте проверку в последнюю очередь: сначала заголовок должен заработать во всех правилах, а ваш домен — указывать на CDN.

Поддерживается ли WebSocket?

Да. Создайте правило для пути, использующего WebSocket, и включите Разрешить подключения WebSocket. Соединение доходит до источника и остаётся открытым, пока идёт передача данных; на этом пути кеширование не используется.

Как долго запрос может оставаться открытым?

Пока идёт передача данных, общее время не ограничено. Ограничено время, в течение которого edge ждёт без поступления данных: по умолчанию 60 секунд. Вы можете увеличить его до 3600 секунд в поле правила Тайм-аут ответа источника (секунды).

Откуда читать реальный IP посетителя?

Из заголовка X-CDN-Client-IP. Edge-сервер сам записывает этот заголовок при каждом запросе и не использует заголовок с тем же именем, отправленный посетителем. Если вы используете X-Forwarded-For, берите крайнее правое значение.

Похожие страницы

Управление DNS-записями

Добавляйте, обновляйте, удаляйте, импортируйте, экспортируйте и переносите подходящие записи в облачный DNS.

HTTP/3 и IPv6 на edge

С сентября 2026 года edge CDN.com.tr обслуживает каждый hostname по HTTP/3 (QUIC) и IPv6 в дополнение к HTTP/2 и IPv4. Браузеры переключаются сами; настройки на уровне аккаунта нет, а ваш origin может оставаться только на IPv4.