Heim >Betrieb und Instandhaltung >Nginx >So implementieren Sie die Nginx-Protokollschnittkonfiguration

So implementieren Sie die Nginx-Protokollschnittkonfiguration

WBOY
WBOYOriginal
2023-11-08 12:48:211516Durchsuche

So implementieren Sie die Nginx-Protokollschnittkonfiguration

Für die Implementierung der Nginx-Protokollschneidekonfiguration sind spezifische Codebeispiele erforderlich.

Nginx ist ein sehr beliebter Hochleistungs-Webserver und Reverse-Proxy-Server, der häufig zum Erstellen und Ausführen moderner Anwendungen verwendet wird. Als Betriebs- und Wartungstechniker müssen wir häufig die Protokollschneidefunktion des Nginx-Servers konfigurieren, damit die Protokolle des Servers regelmäßig geschnitten werden können, um zu verhindern, dass übermäßige Protokolldateien die Leistung des Servers beeinträchtigen. Im Folgenden wird die Implementierung der Nginx-Protokollschneidekonfiguration vorgestellt und spezifische Codebeispiele gegeben.

1. Warum müssen Sie das Schneiden von Protokollen konfigurieren?

Der Nginx-Server schreibt standardmäßig alle Zugriffsprotokolle und Fehlerprotokolle in dieselbe Datei Es nimmt viel Speicherplatz in Anspruch und die Effizienz bei der Suche nach bestimmten Protokollinformationen wird ebenfalls verringert. Um dieses Problem zu lösen, müssen wir regelmäßig Nginx-Protokolle schneiden, Protokolldateien entsprechend einer bestimmten Größe oder einem bestimmten Zeitintervall schneiden und alte Protokolldateien archivieren oder löschen, um die Serverleistung und Verwaltbarkeit aufrechtzuerhalten.

2. So konfigurieren Sie das Nginx-Protokollschneiden

  1. Installieren Sie das Logrotate-Tool.

Logrotate ist ein häufig verwendetes Protokollschneidetool, mit dem verschiedene Protokolldateien automatisch geschnitten, archiviert und gelöscht werden können. Zuerst müssen wir das Logrotate-Tool auf dem Server installieren. Wenn Ihr Server ein Debian/Ubuntu-System verwendet, können Sie den folgenden Befehl verwenden, um es zu installieren:

sudo apt-get install logrotate

Wenn Ihr Server ein CentOS/RHEL-System verwendet, können Sie den folgenden Befehl verwenden, um es zu installieren:

sudo yum install logrotate
  1. Erstellen Sie ein Protokoll Schnittkonfigurationsdatei

Als nächstes müssen wir eine Nginx-Protokollschnittkonfigurationsdatei erstellen, um die Schnittregeln und auszuführenden Vorgänge zu definieren. Normalerweise befinden sich Nginx-Protokolldateien im Verzeichnis /var/log/nginx/. In diesem Verzeichnis können wir eine Datei mit dem Namen nginx.logrotate erstellen und die folgende Konfiguration bearbeiten: /var/log/nginx/目录下,我们可以在该目录下创建一个名为nginx.logrotate的文件,并编辑如下配置:

/var/log/nginx/*.log {
    daily
    missingok
    rotate 7
    compress
    delaycompress
    notifempty
    create 0644 nginx nginx
    sharedscripts
    postrotate
        /usr/sbin/nginx -s reopen
    endscript
}

上述配置中,各个参数的含义如下:

  • daily:按照每天的时间间隔进行切割;
  • missingok:如果日志文件不存在,则不报错;
  • rotate 7:保留最近7个切割后的日志文件,旧的日志文件会被删除;
  • compress:对切割后的日志文件进行压缩;
  • delaycompress:延迟压缩,即在下一次切割时再进行压缩;
  • notifempty:如果切割后的日志文件为空,则不执行任何操作;
  • create 0644 nginx nginx:创建新的日志文件时,设置权限为0644,所有者和组为nginx;
  • sharedscripts:在执行切割脚本之前只执行一次脚本;
  • postrotateendscript:在切割完成后执行的脚本,将Nginx服务器重新打开日志文件。
  1. 测试日志切割配置

完成配置文件的编写后,可以使用以下命令进行日志切割的测试:

sudo logrotate -f /etc/logrotate.d/nginx.logrotate

执行上述命令后,logrotate将会按照配置文件的规则对Nginx的日志文件进行切割。你可以通过ls命令查看/var/log/nginx/目录下的日志文件,看是否按照规则进行了切割和压缩。

  1. 设置logrotate的定时任务

为了实现自动的日志切割功能,我们需要将logrotate的执行任务加入到系统的定时任务中。可以编辑/etc/crontab

0 0 * * * root /usr/sbin/logrotate -f /etc/logrotate.d/nginx.logrotate

In der obigen Konfiguration ist die Bedeutung jedes Parameters wie folgt:

    täglich: Geschnitten nach täglichen Zeitintervallen;

    missingok: Wenn die Protokolldatei existiert nicht, es wird kein Fehler gemeldet;

    rotate 7: Behalten Sie die letzten 7 ausgeschnittenen Protokolldateien bei und die alten Protokolldateien werden gelöscht 🎜🎜komprimieren; code>: Komprimieren Sie die ausgeschnittene Protokolldatei. 🎜🎜<code>delaycompress: Komprimieren Sie den nächsten Schnitt leer, es wird kein Vorgang ausgeführt; 🎜🎜create 0644 nginx nginx: Setzen Sie beim Erstellen einer neuen Protokolldatei die Berechtigung auf 0644, den Besitzer und die Gruppe auf nginx; code> code>: Führen Sie das Skript nur einmal aus, bevor Sie das Schneidskript ausführen. 🎜🎜postrotate und endscript: Skripte, die nach Abschluss des Schneidvorgangs ausgeführt werden, um die Protokolldatei erneut zu öffnen Nginx-Server. 🎜
    🎜Testen Sie die Protokollschnittkonfiguration🎜🎜🎜Nach Abschluss des Schreibens der Konfigurationsdatei können Sie den folgenden Befehl verwenden, um den Protokollschnitt zu testen: 🎜rrreee🎜Nachdem Sie die oben genannten Schritte ausgeführt haben Mit dem Befehl logrotate werden die Regeln der Konfigurationsdatei zum Schneiden von Nginx-Protokolldateien befolgt. Mit dem Befehl ls können Sie die Protokolldateien im Verzeichnis /var/log/nginx/ anzeigen, um zu sehen, ob sie gemäß den Regeln geschnitten und komprimiert wurden. 🎜
      🎜Legen Sie die geplante Aufgabe von Logrotate fest.🎜🎜🎜Um die automatische Protokollschneidefunktion zu realisieren, müssen wir die Ausführungsaufgabe von Logrotate zur geplanten Aufgabe des Systems hinzufügen. Sie können die Datei /etc/crontab bearbeiten und die folgende Zeile hinzufügen: 🎜rrreee🎜Auf diese Weise führt logrotate jeden Tag um Mitternacht (0 Stunden, 0 Minuten) einen Holzschnittvorgang durch. 🎜🎜Zusammenfassung🎜🎜Es ist unbedingt erforderlich, die Protokollschneidefunktion von Nginx zu konfigurieren, um die Leistung und Verwaltbarkeit des Servers aufrechtzuerhalten. Durch die Installation des Logrotate-Tools, das Erstellen einer Konfigurationsdatei zum Protokollschneiden und das Einrichten geplanter Aufgaben können Sie die Funktion zum automatischen Protokollschneiden realisieren. Ich hoffe, dass die in diesem Artikel bereitgestellten spezifischen Codebeispiele Ihnen bei der Implementierung der Nginx-Protokollschnittkonfiguration helfen können. 🎜

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Nginx-Protokollschnittkonfiguration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn