Как да разрешите грешката 429 Too Many Requests
Грешката 429 Too Many Requests (твърде много заявки) е HTTP код на състоянието, който показва, че даден потребител е изпратил твърде много заявки за определен период от време. Тя служи като механизъм за ограничаване на скоростта, за да предпази сървъра от претоварване от прекомерни заявки, дължащи се на неправилно конфигуриран скрипт, пълзящи програми или атаки с груба сила. Отстраняването на тази грешка е от решаващо значение, за да се гарантира, че легитимните потребители имат достъп до уебсайта ви без прекъсване.
Това ръководство ще ви запознае с причините за грешка 429 и с решенията стъпка по стъпка за нейното отстраняване.
Какви са причините за грешката 429 “Твърде много заявки”?
Грешката 429 Too Many Requests обикновено се причинява от:
- Ограничаване на скоростта: Сървърът или защитната стена на приложението (като Cloudflare, Sucuri или плъгин) ограничава броя на заявките, разрешени от определен потребител, IP адрес или браузър.
- Ботове и пълзящи програми: Ботовете или обхождащите машини могат да изпращат многобройни заявки към даден уебсайт, което кара сървъра да задейства ограничаване на скоростта.
- Неправилно конфигурирани плъгини или скриптове: Някои плъгини на WordPress, API заявки или скриптове могат по невнимание да изпратят твърде много заявки към сървъра, което води до грешката.
- Атаки с груба сила: Многократните опити за влизане или заплахите за сигурността, като например атаки с груба сила, могат да предизвикат ограничаване на скоростта на страниците за влизане.
Как да поправите грешката 429 Too Many Requests Error: Стъпка по стъпка
Стъпка 1: Идентифицирайте източника на прекомерните заявки
За да разрешите грешката 429, първо трябва да идентифицирате причината за прекомерните заявки:
- Проверете дневника на сървъра: Сървърните дневници могат да предоставят информация за това кои IP адреси или потребители изпращат твърде много заявки.
- Получете достъп до дневниците, като използвате cPanel, SSH или FTP.
- Потърсете IP адреси или скриптове, които правят чести заявки.
- Използвайте плъгини за сигурност: Ако използвате WordPress, плъгини като Wordfence или iThemes Security могат да ви помогнат да наблюдавате и блокирате подозрителна дейност.
Стъпка 2: Увеличете ограниченията на скоростта на вашия сървър
Ако грешката 429 се дължи на легитимен трафик, който превишава ограниченията на скоростта на сървъра, може да се наложи да увеличите ограниченията на скоростта на вашия сървър.
- Настройте ограниченията на скоростта в .htaccess (за сървъри Apache):
- Достъпете до файла .htaccess чрез FTP или cPanel.
- Добавете следния код, за да разрешите повече заявки:RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(POST|GET) RewriteCond %{REQUEST_URI} ^/your-page-url/ RewriteCond %{REMOTE_ADDR} ^(.*)$ RewriteRule .* – [F,L]
- Този пример ограничава скоростта на заявките към определена страница. Коригирайте условията, както е необходимо за вашите нужди.
- Сървъри Nginx:
- Осъществете достъп до файла nginx.conf и коригирайте настройките за ограничаване на скоростта:http { limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server { location / { limit_req zone=one burst=20 nodelay; } } }
- Тази конфигурация позволява 10 заявки в секунда и серия от 20 заявки без забавяне. Коригирайте стойностите, както е необходимо.
- Осъществете достъп до файла nginx.conf и коригирайте настройките за ограничаване на скоростта:
Стъпка 3: Временно деактивиране на плъгините (WordPress)
В WordPress плъгините понякога могат да бъдат причина за грешка 429 поради API заявки или настройки за ограничаване на скоростта:
- Влезте в таблото за управление на WordPress.
- Отидете в Плъгини > Инсталирани плъгини.
- Деактивирайте плъгините, които могат да взаимодействат с външни API, като например SEO плъгини, плъгини за кеширане или плъгини за сигурност.
- Проверете уебсайта си, за да видите дали грешката продължава да се проявява.
- Активирайте отново плъгините един по един, за да установите кой от тях причинява проблема.
Съвет: Винаги поддържайте плъгините си актуализирани, за да избегнете проблеми със съвместимостта, които могат да доведат до грешки.
Стъпка 4: Регулиране на лимитите на заявките за API
Ако работите с API (например API на трети страни или потребителски скриптове), уверете се, че заявките ви не надвишават ограниченията за скорост, зададени от доставчика на API:
- Проверете документацията на API: Проверете ограниченията на скоростта в документацията на API и коригирайте скриптовете си, за да спазват тези ограничения.
- Ограничете заявките за API: Използвайте дроселиране или ограничаване на скоростта в заявките си за API, за да предотвратите прекомерни повиквания. Например, ако използвате JavaScript, можете да приложите ограничаване с помощта на библиотеки като lodash:_.throttle(() => { // Вашето API повикване тук }, 2000);
- Този пример изпраща API заявка на всеки 2 секунди.
Стъпка 5: Блокиране или ограничаване на ботовете и обхождащите програми
Ботовете и обхождащите машини могат да предизвикат прекомерни заявки, което води до грешка 429:
- Блокирайте нежеланите ботове в .htaccess:
- Добавете следния код в .htaccess, за да блокирате известните лоши ботове:RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(BadBot|AnotherBadBot).*$ [NC] RewriteRule .* – [F,L]
- Заменете BadBot и AnotherBadBot с имената на ботовете, които искате да блокирате.
- Добавете следния код в .htaccess, за да блокирате известните лоши ботове:
- Използвайте защитна стена за уеб приложения (WAF):
- Използвайте услуги като Cloudflare, Sucuri или Wordfence (за WordPress), за да блокирате злонамерени ботове и да контролирате трафика към сайта си.
- Тези инструменти могат автоматично да откриват и блокират подозрителни IP адреси, които генерират прекомерни заявки.
Стъпка 6: Свържете се с вашия доставчик на хостинг
Ако не можете да установите източника на грешката 429, вашият доставчик на хостинг услуги може да ви даде информация:
- Отворете билет за поддръжка с вашия хостинг доставчик и опишете проблема.
- Помолете ги да проверят сървърните логове за необичайна активност или правила за ограничаване на скоростта.
- Те могат да увеличат временно ограничението на скоростта на сървъра или да ви помогнат да блокирате проблемния трафик.
Стъпка 7: Коригиране на настройките на плъгина за сигурност (WordPress)
Ако използвате плъгин за сигурност като Wordfence или iThemes Security, проверете настройките за ограничаване на скоростта:
- Отидете в настройките на плъгина в таблото за управление на WordPress.
- Потърсете настройките за ограничаване на скоростта или защита от груба сила.
- Настройте прага за опитите за влизане в системата и скоростта на заявките, за да бъдат по-снизходителни.
- Запазете промените и тествайте уебсайта си, за да видите дали грешката е отстранена.
Стъпка 8: Изчистете кеша на браузъра и бисквитките
Понякога грешката 429 може да е кеширана в браузъра ви:
- Изчистете кеша в Chrome:
- Отидете в Настройки > Поверителност и сигурност > Изчистване на данни за сърфиране.
- Изберете “Кеширани изображения и файлове” и “Бисквитки и други данни за сайта”, след което щракнете върху “Изчистване на данни”.
- Опитайте с режим Инкогнито: Ако изчистването на кеша не даде резултат, опитайте да влезете в уебсайта в режим Инкогнито, за да изключите проблеми с кеширането.
Обобщение
Грешката 429 “Твърде много заявки” може да бъде причинена от настройки за ограничаване на скоростта, прекомерни заявки за API или злонамерен трафик. Ето кратко обобщение на начините за отстраняване на проблема:
- Идентифицирайте източника на прекомерните заявки, като използвате регистрационните файлове на сървъра.
- Увеличете ограниченията на скоростта в .htaccess или nginx.conf, ако проблемът е причинен от легитимен трафик.
- Деактивирайте временно плъгините, за да идентифицирате и поправите неправилно конфигурирани скриптове.
- Регулирайте ограниченията на заявките за API и използвайте throttling, за да избегнете превишаване на ограниченията на скоростта на API.
- Блокирайте ботове и използвайте защитна стена за уеб приложения за управление на трафика.
- Свържете се с доставчика на хостинг за поддръжка, ако проблемът продължава.
Като следвате тези стъпки, можете да разрешите грешката 429 и да гарантирате, че уебсайтът ви остава достъпен за легитимни потребители.