Przejdź do głównej zawartości

Jak wykluczyć IP z dzienników w nginx?



Wyobraź sobie sytuację: masz statyczny adres IP, a ty dużo i przez długi czas zajmujesz się edycją strony. W tym samym czasie nadal trzeba monitorować dzienniki pod kątem błędów w zapytaniach lub skanowania narażenia na atak. A obecność dużej liczby rekordów w Twoim IP utrudnia przeglądanie dzienników.

Za pomocą warunkowego wpisu, który jest dostępny w Nginx, począwszy od wersji 1.7.0, możemy sprawdzić IP odwiedzającego i nie zapisywać go w plikach dziennika. Rzeczywiście, dlaczego to zrobić, jeśli logowanie IP nie jest konieczne?



Aby dodać taki wyjątek, musisz utworzyć wpis warunkowy oparty na module map_module . Wynik obliczenia rekordu warunkowego nie zostanie zapisany w dzienniku, jeśli jest równy 0. Reguła będzie wyglądać następująco:

  map $ remote_addr $ loggable {
  "127.0.0.1" 0;
  ":: 1" 0;
  domyślnie 1;
 } 

Oznacza to, że domyślny wynik to 1, a dla podanego IP - 0, i nie zostaną one zapisane w dzienniku. Obsługiwane są protokoły 4 i 6. Uwaga, tutaj pierwszą zmienną jest adres klienta łączącego. A druga zmienna musi być zapisana w parametrach logu dostępu.

  access_log /var/log/nginx/access.log połączone if = $ loggable; 

Blok mapy można określić zarówno na poziomie http konfiguracji nginx, jak i na poziomie server .



Wykluczenie innych danych z dzienników

Wyłączenie rejestrowania IP jest tylko jednym z wielu przykładów. Możesz użyć różnych zmiennych ze standardu .

Wyłączmy, na przykład, zapisywanie w dzienniku błędów.html strony. Aby to zrobić, utwórz taki blok:

  map $ request_uri $ loggable {
  ~ * error.html 0;
  domyślnie 1;
 } 

I napisz, jak powyżej, parametr if jako argument parametru access_log. Po ponownym uruchomieniu nginx wszystkie żądania błędu error.html nie zostaną zapisane. W tym warianty typów error.html?q=search . Aby uzyskać dopasowanie ścisłe, musisz napisać inne wyrażenie regularne.




Jak oceniasz artykuł?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 ( 2 ocen, średnia: 5,00 na 5)
Ładowanie ...

Dodaj komentarz

Twój e-mail nie zostanie opublikowany.