Einführung in die Nginx-Protokollverwaltung

Einführung in die Nginx-Protokollverwaltung

Nginx-Protokollbeschreibung

Über Zugriffsprotokolle können Sie relevante Informationen abrufen, beispielsweise die geografische Herkunft des Benutzers, die Absprungquelle, das verwendete Endgerät, die Anzahl der Besuche einer bestimmten URL usw. Über Fehlerprotokolle können Sie Leistungsengpässe eines bestimmten Dienstes oder Servers im System usw. ermitteln. Wenn Sie das Protokoll also gut nutzen, können Sie viele wertvolle Informationen erhalten.

Parameterliste:

$remote_addr Client-IP-Adresse (Proxyserver, zeigt die IP des Proxy-Dienstes an)
$remote_user Wird verwendet, um den Benutzernamen des Remote-Clients aufzuzeichnen (normalerweise "-")
$Zeit_lokal Wird verwendet, um Zugriffszeit und Zeitzone aufzuzeichnen
$Anfrage Wird verwendet, um die Anforderungs-URL und die Anforderungsmethode aufzuzeichnen
$status Antwortstatuscode, zum Beispiel: 200 Erfolg, 404 Seite nicht gefunden usw.
$body_bytes_sent Die Anzahl der Bytes des an den Client gesendeten Dateiinhalts
$http_user_agent Der vom Benutzer verwendete Proxy (normalerweise ein Browser)
$http_x_weitergeleitet für Kann die Client-IP aufzeichnen, die IP-Adresse des Clients über den Proxyserver aufzeichnen
$http_referer Sie können aufzeichnen, über welchen Link der Benutzer kam

Nginx-Protokolltrennung

Die Protokolldateien von Nginx haben keine Rotationsfunktion. Um jeden Tag ein Protokoll zu erstellen, können wir ein Nginx-Protokollschneideskript schreiben, um die Protokolldatei automatisch zu schneiden.

Der erste Schritt besteht darin, die Protokolldatei umzubenennen. Machen Sie sich keine Sorgen, dass die Protokolldatei verloren geht, da nginx die Protokolldatei nach der Umbenennung nicht finden kann. Bevor Sie die Protokolldatei mit dem ursprünglichen Namen erneut öffnen, schreibt nginx noch Protokolle in die von Ihnen umbenannte Datei. Linux sucht Dateien anhand von Dateideskriptoren und nicht anhand von Dateinamen.

Der zweite Schritt besteht darin, das USR1-Signal an den Nginx-Hauptprozess zu senden. Nach dem Empfang des Signals liest der Nginx-Hauptprozess den Protokolldateinamen aus der Konfigurationsdatei, öffnet die Protokolldatei erneut (benannt nach der Protokolldatei in der Konfigurationsdatei) und verwendet den Benutzer des Arbeitsprozesses als Eigentümer der Protokolldatei. Nach dem erneuten Öffnen der Protokolldatei schließt der Nginx-Masterprozess die Protokolldatei mit demselben Namen und benachrichtigt den Workerprozess, die neu geöffnete Protokolldatei zu verwenden. Der Arbeitsprozess öffnet sofort die neue Protokolldatei und schließt die Protokolldatei mit demselben Namen. Anschließend können Sie die alten Logdateien weiterverarbeiten. [Oder starten Sie den Nginx-Dienst neu].

Nginx-Protokollformat

Öffnen Sie die Konfigurationsdatei nginx.conf: vim /usr/local/nginx/conf/nginx.conf
Überprüfen Sie die Datei nginx.conf von Nginx und Sie können diese Meldung sehen

#access_log logs/access.log main;

Dies bedeutet, dass die Serverzugriffsprotokolldatei logs/host.access.log lautet und das verwendete Format „main“ ist.
Das Protokoll wird in der Datei logs/access.log im Stammverzeichnis von Nginx generiert. Standardmäßig wird das Protokollformat „main“ verwendet. Sie können aber auch ein benutzerdefiniertes Format verwenden.

Hauptformat

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#Parametererklärung $remote_addr Client-IP-Adresse;
$remote_user Client-Benutzername;
$time_local Die Uhrzeit und Zeitzone des Zugriffs;
$request Der Typ der Zugriffsanforderung, POST oder GET;
$status zeichnet den Anforderungsstatus auf, 404, 304, 200 usw.;
$body_bytes_sent: die Größe des vom Client an den Server gesendeten Dateitextinhalts;
$http_referer Zugriffsquelle – von welchem ​​Link;
$http_user_agent User-Agent-Informationen, normalerweise ein Browser-Tag, manchmal auch ein Crawler-Tag.
$http_x_forwarded_for Direkter Zugriff auf die IP-Adresse des Servers, die die Client-IP oder die Proxy-Server-IP sein kann
#Wenden Sie die Hauptformatprotokollinstanz 47.97.66.214 an - - [05/May/2018:02:18:26 +0800] "GET /solr/ HTTP/1.1" 404 571 "http://44.186.245.237/solr/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li Gecko) Chrome/59.0.3071.115 Safari/537.36"
47.97.66.214 - - [05/Mai/2018:02:18:26 +0800] "GET /wcm/ HTTP/1.1" 404 571 "http://44.186.245.237/wcm/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, li Gecko) Chrome/59.0.3071.115 Safari/537.36"
80.82.78.50 - - [05/Mai/2018:03:53:56 +0800] "GET http://www.baidu.com/ HTTP/1.1" 404 169 "-" "Mozilla"
112.193.171.197 - - [05/Mai/2018:06:52:06 +0800] "GET http://www.rfa.org/ HTTP/1.1" 200 462 "-" "python-requests/2.6.0 CPython/2.7.5 Linux/3.10.0-693.11.1.el7.x86_64"

Zusätzlich zum Hauptformat können Sie andere Formate anpassen, indem Sie die oben genannten Parameter neu kombinieren.

Das Standardprotokoll von nginx wird in logs/access.log gespeichert, es ist jedoch auch möglich, für verschiedene Server unterschiedliche Protokolle zu erstellen. Fügen Sie einfach die folgende Anweisung unter dem entsprechenden Server hinzu

Zugriffsprotokolle/Zugriffsprotokolle_8080.log mein Protokoll;
#Protokoll deklarieren #Protokollspeicherverzeichnis und -name #Protokollformat (anpassbar)

Nach der Änderung von nginx.conf müssen Sie Nginx neu starten, damit die Konfiguration wirksam wird

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung des Nginx-Signalsatzfalls
  • Detaillierte Erläuterung der CentOS-Konfiguration der offiziellen Nginx-Yum-Quelle
  • Installieren Sie mehrere PHP-Versionen für Nginx unter Linux
  • Detailliertes Tutorial zur Installation von PHP und Nginx auf Centos7
  • Eine universelle Nginx-Schnittstelle zur Implementierung der Reverse-Proxy-Konfiguration
  • Lösen Sie das Problem der leeren Aktualisierung beim Bereitstellen des Vue-Projekts nginx in einem Nicht-Root-Verzeichnis
  • So installieren Sie Nginx und konfigurieren mehrere Domänennamen
  • Wenn Nginx eingeschaltet ist, ist der Port belegt und es erscheint die Meldung: Adresse bereits in Verwendung
  • Lösung für das Problem, dass Docker Nginx nach dem Ausführen nicht mehr aufgerufen werden kann
  • So leiten Sie über den Nginx-Lastausgleich zu https um
  • Nginx-Signalsteuerung

<<:  Detaillierte Erläuterung der Transaktionsisolierungsebenen der MySQL-Datenbank

>>:  Lösen Sie das Problem, dass das Vue-Projekt beim lokalen Start keine Cookies übertragen kann

Artikel empfehlen

HTML+CSS-Implementierungscode für abgerundete Rechtecke

Mir war langweilig und plötzlich fiel mir die Impl...

MySql 8.0.11 Installations- und Konfigurationstutorial

Offizielle Website-Adresse: https://dev.mysql.com...

Interpretation und Verwendung verschiedener React-State-Manager

Zunächst müssen wir wissen, was ein Zustandsmanag...

Apache Spark 2.0-Jobs brauchen lange, bis sie abgeschlossen sind

Phänomen Bei der Verwendung von Apache Spark 2.x ...

CentOS 7-Konfiguration Tomcat9+MySQL-Lösung

Tomcat konfigurieren Installieren Sie zuerst Tomc...

Verwendung des Linux-Befehls gzip

1. Befehlseinführung Der Befehl gzip (GNU zip) wi...

Beispielcode zur Implementierung eines 3D-Zauberwürfels mit CSS

Lassen Sie uns heute einen einfachen 3D-Zauberwür...

JavaScript zur Implementierung der Webversion des Schlangenspiels

In diesem Artikel wird der spezifische Code für J...

So kapseln Sie die Karussellkomponente in Vue3

Zweck Kapseln Sie die Karussellkomponente und ver...

Reines HTML und CSS, um den JD-Karusselleffekt zu erzielen

Das JD-Karussell wurde mit reinem HTML und CSS im...

JavaScript, um den Effekt des Klickens auf das Untermenü zu erzielen

In diesem Artikel wird der spezifische JavaScript...