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

Detaillierte Erklärung des daily_routine Beispielcodes in Linux

Schauen Sie sich zunächst den Beispielcode an: #/...

So verwenden Sie jconsole zum Überwachen von Remote-Tomcat-Diensten

Was ist JConsole JConsole wurde in Java 5 eingefü...

Grundlegende Anwendungsbeispiele für benannte Slots in Vue

Vorwort Benannte Slots werden mithilfe des Attrib...

So installieren Sie eine MySQL-Datenbank im Deepin 2014-System

Deepin 2014 herunterladen und installieren Zum He...

So erstellen Sie einen DHCP-Server in Linux

Inhaltsverzeichnis 1. Grundkenntnisse: 2. DHCP-Se...

So erstellen Sie eine Datenbank in Navicat 8 für MySQL

Beim Entwickeln einer Website müssen Sie häufig e...

Lösung zur Bereinigung des Docker-Festplattenspeichers

Vor einiger Zeit stieß ich auf das Problem, dass ...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

Der gesamte Prozess der Optimierung des ersten Ladens einer Vue-Seite

Inhaltsverzeichnis Vorwort 1. Bildoptimierung 2. ...