Co powoduje błąd 400 Błędnych żądań dla wartości zerowej („”) i dlaczego nasze dzienniki nginx miałyby tak wiele?

9

Codzienne dzienniki z Logwatch regularnie zgłaszają 400 Bad Request, null: 1744 Czas (y) z naszych dzienników nginx.

Wpisy w dzienniku wyglądają następująco:

123.123.123.123 - - [25/Jan/2011:14:44:19 -0500] "-" 400 173 "-" "-"

Czy ktoś może wyjaśnić, w jaki sposób są one generowane i dlaczego jest ich tak wiele? Wydaje się, że nic nie rani, ale w ciągu jednego dnia pojawiło się do 8000 osób. Jesteśmy gospodarzem średniej wielkości aplikacji szynowej działającej na jednorożcu i nginxie.

Trwa dyskusja na forum nginx, ale nie znalazłem prawdziwego rozwiązania, które zmniejszy liczbę zarejestrowanych 400 Bad Reqeusts.

johnml
źródło
1
Jakie adresy IP wysyłają złe żądania? Jak napisano w wątku, może to być program monitorujący, który otwiera tylko połączenie TCP.
Mark Wagner,
Istnieje wiele adresów IP. Większość ma sesję obejmującą normalny ruch internetowy zmieszany z tymi 400. Wydaje mi się, że widziałem aktywność przeglądarek IE tylko w próbkach, w których wyzerowałem ruch związany z sesją.
johnml
1
Zauważyłem na moim serwerze, że korzystanie z Firefoksa w celu uzyskania dostępu do strony zawsze daje jeden z tych pustych 400 logów dokładnie 5 sekund po ostatnim prawidłowym żądaniu, podczas gdy Firebug nie pokazuje błędów. Uwiarygodnia to odpowiedź @ Avleen.
Phrogz

Odpowiedzi:

8

Dzieje się tak często, gdy przeglądarka korzysta z Keep-Alive i osiąga limit czasu utrzymywania aktywności. To całkiem normalne.

Jeśli zobaczysz 400 błędów w URI / ścieżce / metodzie, takich jak GET lub POST itp., Oznacza to, że masz uzasadniony problem z błędnym żądaniem użytkownika. Ale te powinny być rzadkie.

Avleen
źródło