Nginx Web Server configuration with Examples
Spisu treści:
- Konfigurowanie dziennika dostępu
- Konfigurowanie dziennika błędów
- Lokalizacja plików dziennika
- Czytanie i zrozumienie plików dziennika Nginx
- Wniosek
Nginx to wysokowydajny serwer HTTP i odwrotny serwer proxy typu open source, odpowiedzialny za obsługę niektórych największych witryn w Internecie. Podczas zarządzania serwerami sieciowymi NGINX jednym z najczęściej wykonywanych zadań jest sprawdzanie plików dziennika.
Umiejętność konfigurowania i odczytywania dzienników jest bardzo przydatna podczas rozwiązywania problemów z serwerem lub aplikacjami, ponieważ dostarczają one szczegółowych informacji o debugowaniu.
Nginx zapisuje swoje zdarzenia w dwóch typach dzienników: dzienników dostępu i dzienników błędów. Dzienniki dostępu zapisują informacje o żądaniach klientów, a dzienniki błędów zapisują informacje o problemach z serwerem i aplikacjami.
W tym artykule opisano, jak skonfigurować i odczytać dzienniki dostępu i błędów Nginx.
Konfigurowanie dziennika dostępu
Za każdym razem, gdy żądanie klienta jest przetwarzane, Nginx generuje nowe zdarzenie w dzienniku dostępu. Każdy rekord zdarzenia zawiera znacznik czasu i zawiera różne informacje o kliencie i żądanym zasobie. Dzienniki dostępu mogą pokazywać lokalizację odwiedzających, odwiedzaną stronę, ile czasu spędzają na stronie i wiele więcej.
Dyrektywa
log_format
pozwala zdefiniować format rejestrowanych wiadomości. Dyrektywa
access_log
włącza i ustawia lokalizację pliku dziennika oraz używany format.
Najbardziej podstawowa składnia dyrektywy
access_log
jest następująca:
access_log log_file log_format;
Gdzie
log_file
to pełna ścieżka do pliku dziennika, a
log_format
to format używany przez plik dziennika.
Dziennik dostępu można włączyć w bloku
http
,
server
lub dyrektyw dotyczących
location
.
Domyślnie dziennik dostępu jest globalnie włączony w dyrektywie
http
w głównym pliku konfiguracyjnym Nginx.
http {… access_log /var/log/nginx/access.log;… }
Dla lepszej konserwacji zaleca się ustawienie osobnego pliku dziennika dostępu dla każdego bloku serwera. Dyrektywa
access_log
ustawiona w dyrektywie
server
zastępuje jedną ustawioną w dyrektywie
http
(wyższy poziom).
http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }
Jeśli nie określono formatu dziennika, Nginx używa predefiniowanego formatu łączonego, który wygląda następująco:
log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
Aby zmienić format rejestrowania, należy zastąpić ustawienie domyślne lub zdefiniować nowe. Na przykład, aby zdefiniować nowy format rejestrowania o nazwie main, który rozszerzy łączony format o wartość pokazującą nagłówek
X-Forwarded-For
dodaj następującą definicję w dyrektywie
http
lub
server
:
log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
Aby użyć nowego formatu, podaj jego nazwę po pliku dziennika, jak pokazano poniżej:
access_log /var/log/nginx/access.log custom;
Podczas gdy dziennik dostępu zapewnia bardzo przydatne informacje. zajmuje miejsce na dysku i może wpływać na wydajność serwera. Jeśli na twoim serwerze brakuje zasobów i masz zajętą stronę internetową, możesz chcieć wyłączyć dziennik dostępu. Aby to zrobić, ustaw wartość dyrektywy
access_log
na
off
:
Konfigurowanie dziennika błędów
Nginx zapisuje komunikaty o aplikacji i ogólnych błędach serwera w pliku dziennika błędów. Jeśli występują błędy w aplikacji internetowej, dziennik błędów jest pierwszym miejscem do rozpoczęcia rozwiązywania problemów.
Dyrektywa
error_log
włącza i ustawia położenie oraz poziom ważności dziennika błędów. Ma on następującą formę i może być ustawiony w obrębie
http
,
server
lub bloku
location
:
error_log log_file log_level
Parametr
log_level
określa poziom rejestrowania. Poniżej znajdują się poziomy wymienione według ich ważności (od niskiego do wysokiego):
-
debug- debugowanie wiadomości.info- wiadomości informacyjne.notice- powiadomienia.warn- Ostrzeżenia.error- Błędy podczas przetwarzania żądania.crit- Krytyczne problemy. Wymaga szybkiej akcji.alert- Alerty. Działania należy podjąć natychmiast.emerg- sytuacja nadzwyczajna. System jest niezdatny do użytku.
Każdy poziom dziennika obejmuje wyższe poziomy. Na przykład, jeśli ustawisz poziom rejestrowania na
warn
, Nginx będzie także rejestrował
error
o
error
,
crit
,
alert
i komunikatach
emerg
.
Gdy parametr
log_level
nie jest określony, domyślnie jest to
error
.
Domyślnie dyrektywa
error_log
jest zdefiniowana w dyrektywie
http
w głównym pliku nginx.conf:
http {… error_log /var/log/nginx/error.log;… }
Podobnie jak w przypadku dzienników dostępu, zaleca się ustawienie osobnego pliku dziennika błędów dla każdego bloku serwera, który zastąpi ustawienie odziedziczone z wyższych poziomów.
Na przykład, aby ustawić dziennik błędów domeny.com, aby
warn
, że użyjesz:
http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }
Za każdym razem, gdy modyfikujesz plik konfiguracyjny, musisz ponownie uruchomić usługę Nginx, aby zmiany odniosły skutek.
Lokalizacja plików dziennika
Domyślnie w większości dystrybucji Linuksa, takich jak Ubuntu, CentOS i Debian, dzienniki dostępu i dzienniki błędów znajdują się w katalogu
/var/log/nginx
.
Czytanie i zrozumienie plików dziennika Nginx
Możesz otwierać i analizować pliki dziennika za pomocą standardowych poleceń, takich jak
cat
,
less
,
grep
,
cut
,
awk
i tak dalej.
Oto przykładowy rekord z pliku dziennika dostępu, który używa domyślnego formatu dziennika Nginx:
192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
Rozważmy, co oznacza każde pole rekordu:
-
$remote_addr-192.168.33.1- Adres IP klienta$remote_addrżądanie.$remote_user--- Uwierzytelniony użytkownik HTTP. Gdy nazwa użytkownika nie jest ustawiona, w polu tym widnieje-. -- Czas lokalnego serwera."$request"-"GET /- typ, ścieżka i protokół żądania.$status-200- Kod odpowiedzi serwera.$body_bytes_sent-396- Rozmiar odpowiedzi serwera w bajtach."$http_referer"-"-"- Adres URL odwołania."$http_user_agent"-Mozilla/5.0…- Agent użytkownika klienta (przeglądarki internetowej).
Użyj polecenia
tail
aby oglądać plik dziennika w czasie rzeczywistym:
Wniosek
Pliki dziennika dostarczają przydatnych informacji o problemach z serwerem i o tym, jak odwiedzający wchodzą w interakcję z witryną.
Nginx pozwala skonfigurować dzienniki dostępu i dzienniki błędów zgodnie z potrzebami.
nginxObejście błędu błędu aplikacji pakietu Office - ta aplikacja nie może zostać uruchomiona
Firma Microsoft wydała obejście dla aplikacji podglądu pakietu Office z widokiem problem z wyświetlaniem błędu "Ta aplikacja nie może się otworzyć" po uruchomieniu w systemie Windows 10 TP.
Jak naprawić ustawione ustawienia użytkownika do błędu błędu sterownika
Oto szczegółowy poradnik, jak naprawić irytujące ustawienia użytkownika Ustaw na błąd sterownika na komputerach z systemem Windows. Touchpad będzie działał po ich zastosowaniu.
Konfigurowanie i konfigurowanie serwera poczty
W tej serii pokażemy, jak skonfigurować kompletny system wirtualnej poczty użytkownika na serwerze Ubuntu.







