#Симптом и границы применимости
Когда Apache или расположенный перед ним фильтр начинает отклонять обычных пользователей, сперва установите источник ограничений. mod_ratelimit в Apache 2.4 ограничивает скорость передачи одного ответа, а не число запросов с IP; HTTP 429/403 часто формирует WAF, mod_security, сторонний mod_evasive, CDN или приложение.
#Возможные причины и как их отличить
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Срабатывает защитный модуль или WAFФильтр может блокировать обращения по шаблонам и частоте. | 403/429 совпадают с записями mod_security или панели CDN | Уточнить ID правила и его действие |
| Счётчик IP ошибочно объединяет посетителейЕсли ограничения основаны на IP прокси, страдают все пользователи за ним. | В журнале все пользователи выглядят как IP прокси | Проверить mod_remoteip и доверенную цепочку |
| Потоки заняты медленными передачамиmod_ratelimit удерживает поток во время ограниченной передачи. | Запросы ждут, но нет событий блокировки | Проверить фильтр RATE_LIMIT и рабочие потоки |
#Пошаговая диагностика и исправление
- Установите точный код и момент отказаПопросите одного согласившегося пользователя воспроизвести запрос без передачи пароля. Сохраните время и URL без токенов. В инструментах браузера F12 → «Сеть» проверьте статус 403, 429 либо задержку. Если сообщение выдаёт CDN, Apache мог вообще не получить запрос.
- Сверьте журнал по времени и модулюПо SSH найдите CustomLog и ErrorLog нужного домена и его статусный код. Проверьте записи WAF или модулей защиты, если они установлены. Не отключайте весь mod_security ради одного ложного срабатывания: сначала нужен ID правила и воспроизводимый безопасный запрос.
- На Debian/Ubuntu; наличие модуля не доказывает, что он вызвал блокировкуLinux · Терминал (Bash)КомандаНужен sudoНа Debian/Ubuntu; наличие модуля не доказывает, что он вызвал блокировку.
sudo apache2ctl -M | grep -Ei "security|evasive|ratelimit|remoteip"
- Проверьте реальный адрес клиентаЕсли Apache за прокси, сопоставьте адрес TCP-подключения и IP после mod_remoteip. При неверной конфигурации все посетители могут выглядеть как один адрес и быстро исчерпывать общий лимит. Исправляйте RemoteIPHeader только вместе со списком доверенных прокси.
- Проверьте, где именно настроено ограничениеПосмотрите конфигурацию модулей Apache, панели CDN и приложения. Для mod_ratelimit ищите SetOutputFilter RATE_LIMIT и SetEnv rate-limit — это ограничение полосы ответа, не лимит количества запросов. HTTP 429 часто связан с иной защитой.
- Пример Debian; отдельный WAF/CDN может управляться вне ApacheLinux · Терминал (Bash)КомандаНужен sudoПример Debian; отдельный WAF/CDN может управляться вне Apache.
sudo grep -R -nE "RATE_LIMIT|rate-limit|SecRule|DOSPageCount|RemoteIP" /etc/apache2
- Сделайте адресное исключение, а не отключение защитыВ интерфейсе установленного WAF откройте журнал событий, выберите правило по ID и IP/пути и проверьте разрешённый способ точечного исключения. Сначала примените только к безопасному маршруту и узкому условию, затем посмотрите, не усилились ли атаки. Перед сохранением записывайте старое условие для отката.
- Проверьте после корректировкиЕсли изменялся Apache — запустите configtest и перечитайте службу; изменения панели CDN применяются по её правилам. Проверьте 5–10 законных запросов и 1 контролируемый запрос, который должен оставаться запрещённым. Не проводите нагрузочное испытание на чужом сервере.
- Только при изменении Apache и сохранённой резервной копии; пример DebianLinux · Терминал (Bash)С осторожностьюНужен sudoТолько при изменении Apache и сохранённой резервной копии; пример Debian.
sudo apache2ctl configtest && sudo systemctl reload apache2Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
#Как проверить результат
Легитимный запрос получает ожидаемый ответ, в журналах нет ошибочного срабатывания; подозрительные запросы по-прежнему блокируются. Отслеживайте результат при нормальной нагрузке.
#Если проблема не устранена
Если нет событий в Apache, изучите Nginx/CDN или само приложение. Если задержки, а не коды 403/429, измерьте рабочие потоки и влияние mod_ratelimit.