Другое 509Средняя

Ошибка 509: превышение лимита трафика — причины и решения

Ошибка 509 возникает при превышении лимита трафика или запросов на хостинге, CDN или веб-сервере. В статье подробно разбираются причины и даются конкретные инструкции по настройке ограничений, оптимизации и взаимодействию с поддержкой.

Обновлено 23 марта 2026 г.
15-45 мин
Средняя
FixPedia Team
Применимо к:Веб-серверы: nginx 1.18+, Apache 2.4+CDN-сервисы: Cloudflare, Sucuri, FastlyХостинг-провайдеры с тарифами, ограничивающими трафик (cPanel, ISPManager)CMS: WordPress, Joomla (при проблемах с плагинами)

Что такое ошибка 509

Скриншот страницы с ошибкой 509 Bandwidth Limit Exceeded в браузере

Внешний вид ошибки 509 в браузере

Ошибка 509 Bandwidth Limit Exceeded — это HTTP-статус, который возвращает сервер или промежуточный сервис (CDN) при блокировке запросов из-за превышения установленного лимита трафика или частоты запросов. Вместо контента пользователь видит сообщение:

509 Bandwidth Limit Exceeded

Эта ошибка не является стандартной для протокола HTTP/1.1 (официально не кодируется в RFC), но широко используется провайдерами и CDN как кастомный статус для обозначения ограничения по ресурсам.

Причины возникновения ошибки 509

Ошибка 509 возникает на уровне инфраструктуры, а не приложения. Основные причины:

  1. Исчерпание лимита трафика на хостинге. На shared-хостингах часто действуют жёсткие квоты (например, 100 ГБ/месяц). При их превышении хостинг блокирует доступ до начала следующего отчётного периода.
  2. Активация защиты CDN от атак. Сервисы вроде Cloudflare автоматически включают блокировку при обнаружении всплеска трафика, который может указывать на DDoS или сканирование.
  3. Слишком строгие настройки rate limiting. На веб-сервере (nginx, Apache) или в WAF могут быть установлены низкие пороги (например, 5 запросов/сек на IP), которые срабатывают на легитимном трафике.
  4. Злоупотребление ресурсами со стороны сайта. Некорректный плагин, бесконечный цикл в коде или неоптимизированные запросы к базе данных могут генерировать огромное число внутренних запросов, исчерпав лимит.
  5. Целенаправленная атака. DDoS-атака или ботнет могут создавать тысячи запросов в секунду, мгновенно превышая любые разумные лимиты.

Как исправить ошибку 509: пошаговая инструкция

Шаг 1: Определите источник ошибки

Первым делом выясните, кто именно возвращает ошибку 509: ваш хостинг, CDN или веб-сервер.

  • Проверьте HTTP-заголовки ответа. Откройте DevTools в браузере (F12), перейдите на вкладку Network, обновите страницу и найдите запрос, вернувший 509. Изучите заголовки:
    • Server: cloudflare — ошибка от Cloudflare.
    • Server: nginx или Apache — возможно, сработал rate limiting на вашем сервере.
    • Заголовки вроде X-Cache: Error или X-Host: часто содержат информацию о промежуточных сервисах.
  • Используйте команду curl. Запустите curl -I https://ваш-сайт.ru в терминале. В выводе будут все заголовки.
  • Проверьте логи. В панели хостинга найдите раздел с логами (Logs, Access Logs). Если ошибка генерируется хостингом, там будет соответствующая запись. Для доступа по SSH логи обычно находятся в /var/log/nginx/ (access.log, error.log) или /var/log/apache2/.

Шаг 2: Проверьте и при необходимости увеличьте лимиты хостинга

Если источник — хостинг, значит, исчерпан лимит трафика по тарифу.

  1. Войдите в панель управления хостингом (cPanel, Plesk, ISPManager).
  2. Найдите раздел Traffic, Bandwidth Usage или Statistics.
  3. Посмотрите график или цифры за текущий месяц/день. Сравните с лимитом вашего тарифа.
  4. Если лимит превышен:
    • Временное решение: В некоторых панелях (например, cPanel) можно временно увеличить лимит в настройках. Если такой опции нет, срочно обратитесь в поддержку хостинга и попросите снять блокировку до конца отчётного периода (это часто платная услуга).
    • Долгосрочное решение: Рассмотрите переход на тариф с более высоким или неограниченным трафиком (VPS, выделенный сервер). На shared-хостинге лимиты обычно жёсткие.
  5. После снятия блокировки проверьте, работает ли сайт. Очистите кэш браузера и, если используете, кэш сайта/CDN.

💡 Совет: Настройте в панели хостинга уведомления по email при достижении 80-90% лимита. Это даст время на реакцию.

Шаг 3: Настройте rate limiting в веб-сервере

Если проблема в бот-трафике или слишком агрессивных настройках сервера, ужесточите или, наоборот, смягчите лимиты.

Для nginx:

  1. Откройте конфигурационный файл виртуального хоста (обычно /etc/nginx/sites-available/ваш-сайт).
  2. В блоке http (глобально) или server (для конкретного сайта) определите зону ограничения. Параметры:
    • $binary_remote_addr — ключ, по которому считается трафик (IP-адрес в бинарном виде).
    • zone=perip:10m — имя зоны и размер памяти (10М хватит на ~160 тыс. IP).
    • rate=10r/s — базовый лимит (10 запросов в секунду на один IP).
    http {
        limit_req_zone $binary_remote_addr zone=perip:10m rate=10r/s;
    }
    
  3. В блоке location, который нужно защитить (часто location /), примените зону:
    location / {
        limit_req zone=perip burst=20 nodelay;
        # ... остальные директивы (proxy_pass, root и т.д.)
    }
    
    • burst=20 — разрешает короткие всплески до 20 запросов.
    • nodelay — не задерживать запросы в очереди, а сразу отклонять превышающие.
  4. Проверьте синтаксис: sudo nginx -t.
  5. Перезагрузите конфигурацию: sudo systemctl reload nginx.
Конфигурация nginx для ограничения запросов с помощью limit_req_zone

Пример настройки rate limiting в nginx

Для Apache (с модулем mod_evasive):

  1. Убедитесь, что модуль активен: sudo a2enmod evasive.
  2. Отредактируйте конфиг модуля (обычно /etc/apache2/mods-available/evasive.conf):
    <IfModule mod_evasive20.c>
        DOSHashTableSize    3097
        DOSPageCount        2    # Макс. запросов к одной странице за интервал
        DOSSiteCount        50   # Макс. запросов к сайту за интервал
        DOSPageInterval     1    # Интервал для DOSPageCount (секунды)
        DOSSiteInterval     1    # Интервал для DOSSiteCount (секунды)
        DOSBlockingPeriod   10   # Блокировка на 10 секунд
    </IfModule>
    
    Начните с DOSSiteCount 50 и DOSSiteInterval 1 (50 запросов/сек на весь сайт). Регулируйте под свою нагрузку.
  3. Перезагрузите Apache: sudo systemctl reload apache2.

Шаг 4: Настройте защиту в CDN

Если источник ошибки — CDN (Cloudflare, Sucuri), настройте его правила безопасности.

Cloudflare:

  1. Войдите в панель Cloudflare, выберите домен.
  2. Быстрая защита: в разделе Security → Settings установите Security Level на Medium или High. Это активирует более строгую проверку JavaScript и Challenge для подозрительного трафика.
  3. Точный контроль: перейдите в Security → WAF.
    • На вкладке Rate limiting нажмите Create rate limiting rule.
    • Укажите URL (например, /wp-login.php, /xmlrpc.php или * для всего сайта).
    • Задайте Limit (например, 10 запросов) и Period (1 минута).
    • В Action выберите Block (блокировать) или Challenge (показывать капчу).
    • Сохраните правило.
  4. Дайте 5-10 минут на распространение правил, проверьте сайт.
Панель управления Cloudflare с настройкой правила Rate Limiting

Настройка правила Rate Limiting в Cloudflare

Sucuri:

  1. В панели Sucuri перейдите в Firewall → Settings.
  2. Найдите раздел Rate Limiting.
  3. Установите лимиты на количество запросов к сайту за минуту/час. Рекомендуемые значения: 60-100 запросов/минуту на IP для начала.
  4. Сохраните настройки.

⚠️ Важно: Слишком низкие лимиты (например, 1-2 запроса/сек) могут блокировать обычных пользователей при быстром клике или загрузке страницы с множеством ресурсов. Тестируйте изменения.

Шаг 5: Оптимизируйте сайт и проверьте плагины

Часто ошибка 509 — симптом неоптимальной работы сайта, который генерирует избыточные запросы.

  1. Уменьшите количество HTTP-запросов:
    • Объедините CSS и JavaScript файлы.
    • Используйте CSS-спрайты для иконок.
    • Включите ленивую загрузку (lazy load) для изображений.
  2. Включите сжатие и кэширование на сервере:
    • gzip/Brotli: в nginx добавьте gzip on; и brotli on; в конфиг.
    • Кэширование статики: задайте заголовки Cache-Control: max-age=31536000 для изображений, CSS, JS.
  3. Проверьте плагины/модули CMS (особенно для WordPress, Joomla):
    • Временно отключите все плагины через админку.
    • Проверьте, исчезла ли ошибка 509.
    • Включайте плагины по одному, чтобы найти виновника. Частые "кандидаты": плагины статистики, анти-спама, AJAX-виджеты, плагины для оптимизации изображений "на лету".
    • Обновите найденный проблемный плагин или найдите альтернативу.
  4. Аудит базы данных: для WordPress используйте плагины типа WP-Optimize, чтобы очистить транзиенты, спам-комментарии и оптимизировать таблицы.

Профилактика повторения ошибки 509

  1. Мониторинг трафика и уведомления:
    • Используйте аналитику (Google Analytics, Matomo) и инструменты хостинга.
    • Настройте алерты (через сервисы вроде UptimeRobot или встроенные в Cloudflare) при достижении 80% лимита трафика или резком росте запросов.
  2. Регулярный анализ логов:
    • Еженедельно проверяйте топ IP по числу запросов: sudo cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20.
    • Ищите подозрительные User-Agent (например, masscan, zgrab, sqlmap) или частые запросы к /wp-login.php, /xmlrpc.php.
  3. Используйте CDN с защитой от DDoS:
    • Даже бесплатный план Cloudflare предоставляет базовую защиту. Включите Bot Fight Mode.
    • При реальных атаках активируйте Under Attack Mode (Cloudflare) — он показывает JavaScript Challenge для всех посетителей на 5 минут.
  4. Оптимизируйте контент:
    • Сжимайте изображения до загрузки (TinyPNG, ImageOptim).
    • Минифицируйте CSS/JS (плагины для CMS или инструменты вроде UglifyJS).
    • Настройте длительное кэширование для статических ресурсов.
  5. Обновляйте всё ПО:
    • CMS, темы, плагины, веб-сервер (nginx/Apache). Устаревшее ПО часто содержит уязвимости, которые используют для создания бот-сетей.

Когда обращаться к поддержке хостинга

Если настройки rate limiting и CDN не помогают, а лимиты хостинга не исчерпаны, проблема может быть глубже (например, в сетевой инфраструктуре провайдера). В этом случае:

  1. Соберите данные:
    • Точное время и длительность ошибки.
    • Скриншот ошибки из браузера.
    • Вывод команды curl -I и ключевые строки из логов (access.log, error.log) за период ошибки.
    • Результаты диагностики (какой источник определён: хостинг/CDN/сервер).
  2. Сформулируйте запрос в поддержку:
    • "На сайте возвращается ошибка 509. Источник, судя по заголовкам, — ваш хостинг/сервер."
    • "Проверьте, пожалуйста, не превышены ли лимиты по трафику/запросам на моём тарифе укажите название?"
    • "Есть ли в логах записи о блокировке по rule название правила, если настраивали?"
    • "Можно ли временно снять блокировку и получить расширенные логи для анализа?"
  3. Что может сделать поддержка:
    • Снять временную блокировку.
    • Предложить более подходящий тариф.
    • Настроить на стороне инфраструктуры более гибкие лимиты (если это возможно по тарифу).
    • Дать доступ к расширенным логам (например, через Log Manager в cPanel).

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

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

Что такое ошибка 509 и почему она возникает?
Как отличить, источник ошибки — хостинг, CDN или веб-сервер?
Можно ли решить проблему, не меняя тариф хостинга?
Как предотвратить повторение ошибки 509 после её устранения?

Полезное

Определите источник ошибки
Проверьте и при необходимости увеличьте лимиты хостинга
Настройте rate limiting в веб-сервере
Настройте защиту в CDN
Оптимизируйте сайт и проверьте плагины

Эта статья помогла вам решить проблему?