Implementierung von Nginx-Filterzugriffsprotokollen für statische Ressourcendateien

Implementierung von Nginx-Filterzugriffsprotokollen für statische Ressourcendateien

Unordentliches Protokoll

Nginx wird im täglichen Gebrauch meist sowohl als statischer Ressourcenserver als auch als Reverse-Proxy-Server verwendet. Insbesondere im Hinblick auf domänenübergreifende Probleme wird derselbe Abhörport für statische Ressourcen und Backend-Schnittstellen verwendet. Wenn keine Filterung durchgeführt wird, werden in access_log viele Anforderungen für statische Ressourcen wie js, css, jpg usw. angezeigt, was sich auf die Anzeige der Anrufprotokolle der Backend-Schnittstelle auswirkt.

Ich habe dieser Sache zunächst nicht viel Aufmerksamkeit geschenkt, aber als ich einen Artikel über die Nginx-Optimierung durchlas, fand ich eine Methode, mit der man mithilfe von map einen Parameter definieren kann, der angibt, ob Protokolle geschrieben werden sollen. In Kombination mit der jüngsten Verwendung von map für die dynamische domänenübergreifende Konfiguration habe ich einfach ein weiteres Verwendungsszenario von map gelernt und aufgezeichnet.

Verwenden Sie die Karte, um Protokolle für den Zugriff auf statische Ressourcendateien zu filtern

http {
  log_format main '$remote_addr [$time_local] $request $status '
           'uct="$upstream_connect_time" rt="$request_time"';

  Karte $uri $nicht_statisch {
    Standardwert 1;
    ~^(.*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$) 0;
  }

  Server {
    hören Sie 23456;
    Servername localhost;
    access_log Protokolle/test.log Haupt wenn=$not_static;
  }
}

Erläuterung:

  • Passen Sie ein als Hauptformat markiertes Protokollformat an
  • Passen Sie die URI in der Anfrage an. Wenn die Ressource mit gif, jpg, css, js usw. endet, ist $not_static 0, andernfalls 1
  • Für Anforderungen zum Zugriff auf Port 23456 gibt access_log die Verwendung eines benutzerdefinierten Protokollformats an, das als „main“ identifiziert wird, und Protokolle werden nur aufgezeichnet, wenn $not_static 1 ist. Weitere Informationen zum if-Parameter finden Sie in der offiziellen Dokumentation.
  • Zu beachten ist, dass Sie bei Verwendung des if-Parameters in access_log explizit ein log_format angeben müssen, da sonst ein Fehler gemeldet wird: nginx: [emerg] unknown log format "if=$not_static"

Eine andere Möglichkeit, dynamische und statische getrennte Protokolle zu schreiben

Standort ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|woff|ttf)$ {
  #access_log off; #Das Protokoll der Zugriffe auf statische Ressourcen nicht ausgeben access_log logs/static_resources.log;
}

Dies ist das Ende dieses Artikels über die Implementierung der Nginx-Zugriffsprotokollfilterung von statischen Ressourcendateien. Weitere relevante Nginx-Zugriffsprotokollinhalte finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Verwenden Sie das Modul nginx-http-concat, um statische Ressourcendateien in nginx zusammenzuführen
  • So stellen Sie nginx mit Docker bereit und ändern die Konfigurationsdatei
  • Detaillierte Erklärung, wie Sie den Speicherort der Nginx-Konfigurationsdatei finden
  • Lösung für die unbekannte Direktive, die aufgrund von Problemen mit der Nginx-Konfigurationsdatei nicht geöffnet werden kann
  • So zeigen Sie den Nginx-Konfigurationsdateipfad und den Ressourcendateipfad an

<<:  Vue verwendet das Video-Tag, um die Videowiedergabe zu implementieren

>>:  MySQL verwendet den Befehl truncate, um alle Tabellen in einer Datenbank schnell zu löschen

Artikel empfehlen

Zusammenfassung einiger gängiger Methoden des JavaScript-Arrays

Inhaltsverzeichnis 1. So erstellen Sie ein Array ...

Vue3 erhält die aktuelle Routingadresse

Richtige Antwort Verwenden von useRouter : // Rou...

mysql erhält statistische Daten innerhalb eines bestimmten Zeitraums

mysql erhält statistische Daten innerhalb eines b...

So handhaben Sie Bilder in Vue-Formularen

Frage: Ich habe in Vue ein Formular zum Hochladen...

JavaScript-Timer zum nahtlosen Scrollen von Bildern

In diesem Artikel wird der spezifische JavaScript...

Eine einfache Methode zum regelmäßigen Löschen abgelaufener Datensätze in MySQL

1. Überprüfen Sie nach der Verbindung und Anmeldu...

Wer ist ein User Experience Designer?

Beängstigend, nicht wahr? Übersetzung im Bild: (v...

Implementierungsfallcodeanalyse für dynamische und statische Trennung von Nginx

Trennung von statischer und dynamischer Dynamisch...

Zusammenfassung des JS-Ausführungskontexts und -umfangs

Inhaltsverzeichnis Vorwort Text 1. Konzepte im Zu...

Detaillierte Einführung in den MySQL-Datenbankindex

Inhaltsverzeichnis Mindmap Einfaches Verständnis ...

Implementierung der Nginx-Lastverteilung/SSL-Konfiguration

Was ist Lastenausgleich? Wenn ein Domänenname auf...