Jak rozwiązać błąd 429 zbyt wielu żądań
Błąd 429 Too Many Requests to kod stanu HTTP, który wskazuje, że użytkownik wysłał zbyt wiele żądań w określonym czasie. Służy on jako mechanizm ograniczający szybkość w celu ochrony serwera przed przeciążeniem nadmierną liczbą żądań, spowodowaną błędnie skonfigurowanym skryptem, robotami indeksującymi lub atakami siłowymi. Rozwiązanie tego błędu ma kluczowe znaczenie dla zapewnienia, że legalni użytkownicy mogą uzyskać dostęp do witryny bez zakłóceń.
Ten przewodnik przeprowadzi Cię przez przyczyny błędu 429 i rozwiązania krok po kroku, aby go rozwiązać.
Co powoduje błąd 429 zbyt wielu żądań?
Błąd 429 Too Many Requests jest zazwyczaj spowodowany przez:
- Ograniczenie szybkości: Serwer lub zapora aplikacji (taka jak Cloudflare, Sucuri lub wtyczka) ogranicza liczbę żądań dozwolonych od określonego użytkownika, adresu IP lub przeglądarki.
- Boty i roboty indeksujące: Boty lub roboty indeksujące mogą wysyłać liczne żądania do witryny, powodując, że serwer uruchamia ograniczenie szybkości.
- Błędnie skonfigurowane wtyczki lub skrypty: Niektóre wtyczki WordPress, żądania API lub skrypty mogą nieumyślnie wysyłać zbyt wiele żądań do serwera, co prowadzi do błędu.
- Ataki siłowe: Powtarzające się próby logowania lub zagrożenia bezpieczeństwa, takie jak ataki siłowe, mogą powodować ograniczenie szybkości na stronach logowania.
Jak naprawić błąd 429 zbyt wielu żądań: Rozwiązania krok po kroku
Krok 1: Zidentyfikuj źródło nadmiernej liczby żądań
Aby rozwiązać błąd 429, należy najpierw zidentyfikować przyczynę nadmiernych żądań:
- Sprawdź logi serwera: Dzienniki serwera mogą zapewnić wgląd w to, które adresy IP lub użytkownicy wysyłają zbyt wiele żądań.
- Uzyskaj dostęp do dzienników za pomocą cPanel, SSH lub FTP.
- Poszukaj adresów IP lub skryptów, które często wysyłają żądania.
- Używaj wtyczek bezpieczeństwa: Jeśli korzystasz z WordPressa, wtyczki takie jak Wordfence lub iThemes Security mogą pomóc w monitorowaniu i blokowaniu podejrzanej aktywności.
Krok 2: Zwiększenie limitów prędkości na serwerze
Jeśli doświadczasz błędu 429 z powodu legalnego ruchu przekraczającego limity szybkości serwera, może być konieczne zwiększenie limitów szybkości na serwerze.
- Dostosuj limity szybkości w .htaccess (dla serwerów Apache):
- Uzyskaj dostęp do pliku .htaccess przez FTP lub cPanel.
- Dodaj następujący kod, aby zezwolić na więcej żądań:RewriteEngine On RewriteCond %{REQUEST_METHOD} ^(POST|GET) RewriteCond %{REQUEST_URI} ^/your-page-url/ RewriteCond %{REMOTE_ADDR} ^(.*)$ RewriteRule .* – [F,L]
- Ten przykład ogranicza liczbę żądań do określonej strony. Dostosuj warunki do swoich potrzeb.
- Serwery Nginx:
- Uzyskaj dostęp do pliku nginx.conf i dostosuj ustawienia ograniczania szybkości:http { limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; server { location / { limit_req zone=one burst=20 nodelay; } } }
- Ta konfiguracja pozwala na 10 żądań na sekundę i serię 20 żądań bez opóźnień. Dostosuj wartości według potrzeb.
- Uzyskaj dostęp do pliku nginx.conf i dostosuj ustawienia ograniczania szybkości:
Krok 3: Tymczasowe wyłączenie wtyczek (WordPress)
W WordPress wtyczki mogą czasami być przyczyną błędu 429 z powodu żądań API lub ustawień ograniczających szybkość:
- Zaloguj się do pulpitu nawigacyjnego WordPress.
- Przejdź do Wtyczki > Zainstalowane wtyczki.
- Dezaktywuj wtyczki, które mogą wchodzić w interakcje z zewnętrznymi interfejsami API, takie jak wtyczki SEO, wtyczki buforujące lub wtyczki bezpieczeństwa.
- Sprawdź swoją witrynę, aby zobaczyć, czy błąd nadal występuje.
- Ponownie aktywuj wtyczki jedna po drugiej, aby zidentyfikować, która z nich powoduje problem.
Wskazówka: Zawsze aktualizuj swoje wtyczki, aby uniknąć problemów ze zgodnością, które mogą prowadzić do błędów.
Krok 4: Dostosowanie limitów żądań API
Jeśli pracujesz z interfejsami API (takimi jak interfejsy API innych firm lub niestandardowe skrypty), upewnij się, że żądania nie przekraczają limitów szybkości określonych przez dostawcę API:
- Sprawdź dokumentację API: Zapoznaj się z limitami szybkości w dokumentacji API i dostosuj swoje skrypty, aby przestrzegać tych limitów.
- Dławienie żądań API: Użyj dławienia lub ograniczania szybkości w żądaniach API, aby zapobiec nadmiernym wywołaniom. Na przykład, jeśli używasz JavaScript, możesz zaimplementować dławienie za pomocą bibliotek takich jak lodash:_.throttle(() => { // Twoje wywołanie API tutaj }, 2000);
- Ten przykład wysyła żądanie API co 2 sekundy.
Krok 5: Blokowanie lub ograniczanie botów i robotów indeksujących
Boty i roboty indeksujące mogą powodować nadmierne żądania, prowadząc do błędu 429:
- Block Unwanted Bots in .htaccess:
- Dodaj następujący kod do .htaccess, aby zablokować znane złe boty:RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^.*(BadBot|AnotherBadBot).*$ [NC] RewriteRule .* – [F,L]
- Zastąp BadBot i AnotherBadBot nazwami botów, które chcesz zablokować.
- Dodaj następujący kod do .htaccess, aby zablokować znane złe boty:
- Użyj zapory aplikacji sieci Web (WAF):
- Korzystaj z usług takich jak Cloudflare, Sucuri lub Wordfence (dla WordPress), aby blokować złośliwe boty i kontrolować ruch do Twojej witryny.
- Narzędzia te mogą automatycznie wykrywać i blokować podejrzane adresy IP, które generują nadmierną liczbę żądań.
Krok 6: Skontaktuj się z dostawcą usług hostingowych
Jeśli nie możesz zidentyfikować źródła błędu 429, Twój dostawca usług hostingowych może być w stanie zapewnić wgląd:
- Otwórz zgłoszenie do pomocy technicznej u swojego dostawcy hostingu i opisz problem.
- Poproś o sprawdzenie dzienników serwera pod kątem nietypowej aktywności lub reguł ograniczających szybkość.
- Może on tymczasowo zwiększyć limit szybkości serwera lub pomóc w zablokowaniu problematycznego ruchu.
Krok 7: Dostosowanie ustawień wtyczki bezpieczeństwa (WordPress)
Jeśli korzystasz z wtyczki bezpieczeństwa, takiej jak Wordfence lub iThemes Security, sprawdź ustawienia ograniczające szybkość:
- Przejdź do ustawień wtyczki na pulpicie nawigacyjnym WordPress.
- Poszukaj ustawień ograniczania szybkości lub ochrony przed brutalną siłą.
- Dostosuj próg dla prób logowania i liczby żądań, aby były łagodniejsze.
- Zapisz zmiany i przetestuj swoją witrynę, aby sprawdzić, czy błąd został rozwiązany.
Krok 8: Wyczyść pamięć podręczną przeglądarki i pliki cookie
Czasami błąd 429 może być zapisany w pamięci podręcznej przeglądarki:
- Wyczyść pamięć podręczną w Chrome:
- Przejdź do Ustawienia > Prywatność i bezpieczeństwo > Wyczyść dane przeglądania.
- Wybierz Buforowane obrazy i pliki oraz Pliki cookie i inne dane witryn, a następnie kliknij Wyczyść dane.
- Wypróbuj tryb incognito: Jeśli wyczyszczenie pamięci podręcznej nie działa, spróbuj uzyskać dostęp do witryny w trybie incognito, aby wykluczyć problemy z buforowaniem.
Podsumowanie
Błąd 429 Too Many Requests może być spowodowany ustawieniami ograniczającymi szybkość, nadmiernymi żądaniami API lub złośliwym ruchem. Oto krótkie podsumowanie, jak naprawić ten błąd:
- Zidentyfikuj źródło nadmiernych żądań za pomocą dzienników serwera.
- Zwiększ limity szybkości w .htaccess lub nginx.conf, jeśli przyczyną jest legalny ruch.
- Tymczasowo wyłącz wtyczki, aby zidentyfikować i naprawić źle skonfigurowane skrypty.
- Dostosuj limity żądań API i użyj dławienia, aby uniknąć przekroczenia limitów szybkości API.
- Blokuj boty i używaj zapory aplikacji sieci Web do zarządzania ruchem.
- Jeśli problem nie ustąpi, skontaktuj się z dostawcą usług hostingowych w celu uzyskania pomocy.
Postępując zgodnie z tymi krokami, możesz rozwiązać błąd 429 i zapewnić, że Twoja witryna pozostanie dostępna dla legalnych użytkowników.