Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Как защититься от медленного хоста, который удерживает соединение часами?

Вопрос проверяет понимание механизмов защиты сервера от клиентов, которые удерживают соединение слишком долго, что может привести к исчерпанию ресурсов.

Короткий ответ

Для защиты от медленных хостов используются таймауты на уровне веб-сервера или прокси. Например, в Nginx можно настроить client_header_timeout, client_body_timeout и keepalive_timeout. Также помогает ограничение числа одновременных соединений и использование балансировщиков нагрузки. Эти меры предотвращают удержание соединений злоумышленниками.

Длинный ответ

Проблема медленных соединений

Когда клиент удерживает соединение открытым часами, он занимает слот в пуле соединений сервера. Если таких клиентов много, сервер может исчерпать лимит одновременных соединений и перестать отвечать новым пользователям. Это классическая атака Slow Loris, но проблема может возникать и из-за багов в клиентском ПО.

Основные методы защиты

  • Таймауты — установка максимального времени ожидания для разных этапов соединения.
  • Ограничение соединений — лимит на количество одновременных соединений с одного IP.
  • Использование прокси — Nginx или HAProxy могут буферизировать запросы и закрывать медленные соединения.

Пример настройки Nginx

http {
    client_header_timeout 10s;
    client_body_timeout 10s;
    keepalive_timeout 65s;
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    limit_conn addr 10;
}

Эти директивы ограничивают время ожидания заголовков и тела запроса, а также количество соединений с одного IP.

Вывод

Защита от медленных хостов обязательна для любого публичного сервера. Комбинация таймаутов и лимитов соединений позволяет эффективно бороться как с атаками, так и с неисправными клиентами.

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • Networks

  • Linux

    Linux

Ключевые слова

#slow loris

#timeout

#connection pool

#keep-alive

#nginx

#reverse proxy

Подпишись на Golang Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.