Як вирішити помилку 429 Too Many Requests
Помилка 429 Too Many Requests – це код стану HTTP, який вказує на те, що користувач відправив занадто багато запитів за певний проміжок часу. Він слугує механізмом обмеження швидкості, щоб захистити сервер від перевантаження надмірною кількістю запитів через неправильно налаштований скрипт, пошукових роботів або атаки грубої сили. Усунення цієї помилки має вирішальне значення для забезпечення безперебійного доступу до вашого сайту для легальних користувачів.
У цьому посібнику ви дізнаєтеся про причини виникнення 429 помилки та покрокові рішення для її усунення.
Що викликає помилку 429 “Занадто багато запитів”?
Помилка 429 “Занадто багато запитів” зазвичай викликається наступними причинами:
- Обмеженням швидкості: Сервер або брандмауер програми (наприклад, Cloudflare, Sucuri або плагін) обмежує кількість запитів, дозволених від певного користувача, IP-адреси або браузера.
- Боти та пошукові роботи: Боти або пошукові роботи можуть надсилати численні запити до веб-сайту, змушуючи сервер спрацьовувати обмеження швидкості.
- Неправильно налаштовані плагіни або скрипти: Певні плагіни WordPress, запити API або скрипти можуть ненавмисно надсилати занадто багато запитів на сервер, що призводить до помилки.
- Атаки грубої сили: Повторні спроби входу або загрози безпеці, такі як атаки грубої сили, можуть викликати обмеження швидкості на сторінках входу.
Як виправити помилку 429 “Занадто багато запитів”: Покрокові рішення
Крок 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] </IfModule
- Цей приклад обмежує кількість запитів до певної сторінки. Налаштуйте умови відповідно до ваших потреб.
- Сервери 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:
- Block Unwanted Bots in .htaccess:
- Додайте наступний код до .htaccess, щоб заблокувати відомих шкідливих ботів:RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(BadBot|AnotherBadBot).*$ [NC] RewriteRule .* – [F,L] </IfModule
- Замініть BadBot і AnotherBadBot іменами ботів, яких ви хочете заблокувати.
- Додайте наступний код до .htaccess, щоб заблокувати відомих шкідливих ботів:
- Використовуйте брандмауер веб-додатків (WAF):
- Використовуйте такі сервіси, як Cloudflare, Sucuri або Wordfence (для WordPress), щоб блокувати шкідливих ботів і контролювати трафік на вашому сайті.
- Ці інструменти можуть автоматично виявляти і блокувати підозрілі IP-адреси, які генерують надмірні запити.
Крок 6: Зверніться до свого хостинг-провайдера
Якщо ви не можете визначити джерело помилки 429, можливо, ваш хостинг-провайдер зможе надати інформацію:
- Відкрийте тікет підтримки у вашого хостинг-провайдера і опишіть проблему.
- Попросіть їх перевірити журнали сервера на наявність незвичайної активності або правил обмеження швидкості.
- Вони можуть тимчасово збільшити ліміт швидкості сервера або допомогти вам заблокувати проблемний трафік.
Крок 7: Налаштуйте параметри плагіна безпеки (WordPress)
Якщо ви використовуєте плагін безпеки, наприклад, Wordfence або iThemes Security, перевірте налаштування обмеження швидкості:
- Перейдіть до налаштувань плагіна на інформаційній панелі WordPress.
- Знайдіть налаштування обмеження швидкості або захисту від перебору.
- Відрегулюйте поріг для спроб входу та швидкості запитів, щоб бути більш поблажливими.
- Збережіть зміни і протестуйте свій сайт, щоб перевірити, чи усунуто помилку.
Крок 8: Очистіть кеш браузера та файли cookie
Іноді помилка 429 може бути закешована у вашому браузері:
- Очистити кеш у Chrome:
- Перейдіть до Налаштування > Конфіденційність і безпека > Очистити дані веб-перегляду.
- Виберіть Кешовані зображення і файли та Файли cookie та інші дані сайту, а потім натисніть Очистити дані.
- Спробуйте увімкнути режим Інкогніто: Якщо очищення кешу не допомагає, спробуйте зайти на сайт у режимі інкогніто, щоб виключити проблеми з кешуванням.
Підсумок
Помилка 429 Too Many Requests може бути спричинена налаштуваннями, що обмежують швидкість, надмірними запитами до API або шкідливим трафіком. Ось короткий огляд того, як виправити цю проблему:
- Визначте джерело надмірних запитів за допомогою логів сервера.
- Збільште ліміти швидкості в .htaccess або nginx.conf, якщо проблему викликає легальний трафік.
- Тимчасово вимкніть плагіни, щоб виявити та виправити неправильно налаштовані скрипти.
- Налаштуйте ліміти запитів до API і використовуйте дроселювання, щоб уникнути перевищення лімітів швидкості API.
- Блокуйте ботів і використовуйте брандмауер веб-додатків для управління трафіком.
- Зверніться до хостинг-провайдера за підтримкою, якщо проблема не зникне.
Дотримуючись цих кроків, ви зможете усунути помилку 429 і переконатися, що ваш веб-сайт залишається доступним для легальних користувачів.