Inhaltsverzeichnis
Nginx-Zugriffsprotokoll konfigurieren
配置错误日志
日志文件的位置
读取和理解Nginx日志文件
Heim Betrieb und Instandhaltung Nginx So konfigurieren Sie Nginx-Zugriffs- und Fehlerprotokolle

So konfigurieren Sie Nginx-Zugriffs- und Fehlerprotokolle

May 16, 2023 am 08:10 AM
nginx

Nginx ist ein Open-Source-Hochleistungs-HTTP- und Reverse-Proxy-Server, der für die Bewältigung der Auslastung einiger der größten Websites im Internet verantwortlich ist. Eine der häufigsten Aufgaben, die Sie bei der Verwaltung eines NGINX-Webservers ausführen, ist die Überprüfung von Protokolldateien.

Zu wissen, wie man Protokolle konfiguriert und liest, ist bei der Behebung von Server- oder Anwendungsproblemen sehr nützlich, da sie detaillierte Debugging-Informationen liefern.

Nginx verwendet zwei Arten von Protokollen, um seine Ereignisse aufzuzeichnen: Zugriffsprotokolle und Fehlerprotokolle. Die Zugriffsprotokollierung zeichnet Informationen zu Clientanforderungen auf, und die Fehlerprotokollierung zeichnet Informationen zu Server- und Anwendungsproblemen auf.

Nginx-Zugriffsprotokoll konfigurieren

Nginx generiert jedes Mal, wenn eine Kundenanfrage verarbeitet wird, einen neuen Datensatz im Zugriffsprotokoll. Jeder Ereignisdatensatz enthält einen Zeitstempel und verschiedene Informationen über den Client und die angeforderte Ressource. Zugriffsprotokolle können den Standort des Besuchers, die vom Besucher besuchten Seiten usw. anzeigen. Mit der

log_format-Direktive können Sie das Format der Protokollierung definieren. Die access_log-Direktive aktiviert und legt den Speicherort und das Format von Protokolldateien fest. log_format 指令允许你定义记录日志的格式。 access_log 指令启用并设置日志文件的位置和使用的格式。

access_log 指令的最基本语法如下:

access_log log_file log_format;
Nach dem Login kopieren

其中 log_file 是日志文件的完整路径, log_format 是日志文件使用的格式。可以在 httpserverlocation 指令的上下文中启用访问日志。

默认情况下,Nginx主配置文件中的 http 指令配置了全局访问日志格式。

http {
  ...
  access_log  /var/log/nginx/access.log;
  ...
}
Nach dem Login kopieren

/etc/nginx/nginx.conf

为获得更好的可维护性,建议为每个服务器设置一个单独的访问日志文件。在 server 指令中设置的 access_log 指令将覆盖在 http 指令中设置的 access_log

http {
  ...
  access_log  /var/log/nginx/access.log;
  ...
  server {
    server_name domain.com
    access_log  /var/log/nginx/domain.access.log;
    ...
  }
}
Nach dem Login kopieren

/etc/nginx/conf.d/domain.com.conf

如果未指定日志格式,Nginx将使用预定义的combined组合格式,如下所示:

log_format combined '$remote_addr - $remote_user [$time_local] '
                    '"$request" $status $body_bytes_sent '
                    '"$http_referer" "$http_user_agent"';
Nach dem Login kopieren

要更改日志记录格式,请覆盖默认设置或定义一个新设置。例如,定义一个名为 main 的新日志记录格式,它将用添加 X-Forwarded-For header的值来扩展 combined 格式,在 httpserver 中添加以下定义指令:

log_format  custom  '$remote_addr - $remote_user [$time_local] "$request" '
                    '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
Nach dem Login kopieren

要使用新日志格式,请在日志文件后指定其名称,如下所示:

access_log  /var/log/nginx/access.log custom;
Nach dem Login kopieren

虽然访问日志提供了非常有用的信息。但它会占用磁盘空间,并可能影响服务器性能。如果服务器资源不足,并且网站繁忙,则可能要禁用访问日志。为此,请将 access_log 伪指令的值设置为 off 。理论上你不会出现这种情况,Nginx会自动删除前期的日志文件:

access_log off;
Nach dem Login kopieren

配置错误日志

Nginx将应用程序和常规服务器错误的消息写入错误日志文件。如果你在Web应用程序中遇到错误,则错误日志是你开始进行排查问题的第一个位置。 error_log 指令启用并设置错误日志的位置和严重性级别。它采用以下格式,可以在 httpserverlocation 上下文中进行设置:

error_log log_file log_level
Nach dem Login kopieren

log_level 参数设置日志记录级别。以下是按严重性从低到高列出的级别:

debug
info
notice
warn
error
crit
alert
emerg
Nach dem Login kopieren

每个日志级别包括更高级别。例如,如果你将日志级别设置为 warn ,则Nginx还将记录 errorcritalertemerg 消息。未指定 log_level 参数时,默认为 error 。默认情况下, error_log 指令在主nginx.conf文件内的 http 指令上下文中定义:

http {
  ...
  error_log  /var/log/nginx/error.log;
  ...
}
Nach dem Login kopieren

/etc/nginx/nginx.conf与访问日志相同,建议为每个服务器设置一个单独的错误日志文件,该文件将覆盖更高级别的设置如http指令上下文。例如,要将domain.com的错误日志设置为 warn ,你可以使用:

http {
  ...
  error_log  /var/log/nginx/error.log;
  ...

  server {
    server_name domain.com
    error_log  /var/log/nginx/domain.error.log warn;
    ...
  }
}
Nach dem Login kopieren

无论何时修改配置文件,都必须重新加载Nginx服务,以使更改生效。

日志文件的位置

在大多数Linux发行版中,例如Ubuntu ,CentOS和Debian。默认情况下,访问和错误日志位于 /var/log/nginx 目录中。

读取和理解Nginx日志文件

你可以使用 catlessgrepcutawk

Die grundlegendste Syntax der access_log-Direktive lautet wie folgt: 🎜
192.168.33.1 - - [15/Oct/2019:19:41:46 +0000] "GET / HTTP/1" 200 396 "-" "Mozilla/0 (X11; Linux x86_64) AppleWebKit/536 (KHTML, like Gecko) Chrome/38120 Safari/536"
Nach dem Login kopieren
Nach dem Login kopieren
🎜wobei log_file der vollständige Pfad der Protokolldatei und log_format</code ist > ist das für die Protokolldatei verwendete Format. Die Zugriffsprotokollierung kann im Kontext einer <code>http-, server- oder location-Anweisung aktiviert werden. 🎜🎜Standardmäßig konfiguriert die http-Direktive in der Nginx-Hauptkonfigurationsdatei das globale Zugriffsprotokollformat. 🎜rrreee🎜/etc/nginx/nginx.conf🎜🎜Für eine bessere Wartbarkeit wird empfohlen, für jeden Server eine separate Zugriffsprotokolldatei einzurichten. Die in der server-Direktive festgelegte access_log-Direktive überschreibt die in der http-Direktive festgelegte access_log-Direktive. 🎜rrreee🎜/etc/nginx/conf.d/domain.com.conf🎜🎜Wenn kein Protokollformat angegeben ist, verwendet Nginx das vordefinierte kombinierte Format wie folgt: 🎜rrreee🎜Um das Protokollierungsformat zu ändern, überschreiben Sie die Standardeinstellung oder definieren Sie sie eine neue Einstellung. Definieren Sie beispielsweise ein neues Protokollierungsformat namens main, das das combined-Format erweitert, indem es den Wert des X-Forwarded-For-Headers hinzufügt. Fügen Sie die folgende Definitionsanweisung in http oder server hinzu: 🎜rrreee🎜Um das neue Protokollformat zu verwenden, geben Sie seinen Namen nach der Protokolldatei wie folgt an: 🎜rrreee🎜 Obwohl Zugriff Protokolle liefern sehr nützliche Informationen. Es beansprucht jedoch Speicherplatz und kann die Serverleistung beeinträchtigen. Wenn die Ressourcen Ihres Servers knapp werden und Ihre Site ausgelastet ist, möchten Sie möglicherweise Zugriffsprotokolle deaktivieren. Setzen Sie dazu den Wert der access_log-Direktive auf off . Theoretisch werden Sie diese Situation nicht haben, Nginx löscht automatisch die vorherigen Protokolldateien: 🎜rrreee🎜Konfigurationsfehlerprotokoll🎜🎜Nginx schreibt Anwendungs- und allgemeine Serverfehlermeldungen in die Fehlerprotokolldatei. Wenn in Ihrer Webanwendung ein Fehler auftritt, ist das Fehlerprotokoll der erste Ort, an dem Sie mit der Behebung des Problems beginnen. Die error_log-Direktive aktiviert und legt den Speicherort und den Schweregrad des Fehlerprotokolls fest. Es hat das folgende Format und kann im Kontext http , server oder location festgelegt werden: 🎜rrreee🎜log_level Parameter Protokollierungsstufe festlegen. Hier sind die Stufen von niedrig bis hoch aufgelistet: 🎜rrreee🎜 Jede Protokollstufe umfasst höhere Stufen. Wenn Sie beispielsweise die Protokollebene auf warn setzen, protokolliert Nginx auch error , crit , alert und emerg-Nachricht. Wenn der Parameter log_level nicht angegeben ist, ist der Standardwert error. Standardmäßig ist die error_log-Direktive im Kontext der http-Direktive in der Hauptdatei nginx.conf definiert: 🎜rrreee🎜/etc/nginx/nginx.conf ist die Wie beim Zugriffsprotokoll wird empfohlen, für jeden Server eine separate Fehlerprotokolldatei einzurichten, die Einstellungen auf höherer Ebene wie den Kontext der http-Anweisung außer Kraft setzt. Um beispielsweise das Fehlerprotokoll für domain.com auf warn zu setzen, würden Sie Folgendes verwenden: 🎜rrreee🎜 Immer wenn Sie die Konfigurationsdatei ändern, müssen Sie den Nginx-Dienst neu laden, damit die Änderungen wirksam werden. 🎜🎜Speicherort der Protokolldateien 🎜🎜 in den meisten Linux-Distributionen wie Ubuntu, CentOS und Debian. Standardmäßig befinden sich Zugriffs- und Fehlerprotokolle im Verzeichnis /var/log/nginx. 🎜🎜Nginx-Protokolldateien lesen und verstehen🎜🎜Sie können cat, less, grep, cut, < verwenden code>awk und andere Befehle öffnen und analysieren Nginx-Protokolldateien. Das Folgende ist die Aufzeichnung der Zugriffsprotokolldatei unter Verwendung des standardmäßigen Nginx-Protokollformats: 🎜
192.168.33.1 - - [15/Oct/2019:19:41:46 +0000] "GET / HTTP/1" 200 396 "-" "Mozilla/0 (X11; Linux x86_64) AppleWebKit/536 (KHTML, like Gecko) Chrome/38120 Safari/536"
Nach dem Login kopieren
Nach dem Login kopieren

让我们细分Nginx日志文件记录的每个字段意味着什么:

  • $remote_addr – 192.168.33.1 -发出请求的客户端的IP地址。

  • $remote_user  – - -HTTP身份验证用户。未设置用户名时,此字段显示 - 。

  • [$time_local] – [15/Oct/2019:19:41:46 +0000]

本地服务器时间。

  • "$request"  – "GET / HTTP/1.1" -请求类型,路径和协议。

  • $status  – 200 -服务器响应代码。

  • $body_bytes_sent  – 396 -服务器响应的大小(以字节为单位)。

  • "$http_referer"  – "-" -引荐网址。

  • "$http_user_agent"  – Mozilla/5.0 ... -客户端的用户代理(网络浏览器)。

使用 tail 命令实时观看日志文件记录: tail -f access.log

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx-Zugriffs- und Fehlerprotokolle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So überprüfen Sie, ob Nginx gestartet wird So überprüfen Sie, ob Nginx gestartet wird Apr 14, 2025 pm 01:03 PM

So bestätigen Sie, ob Nginx gestartet wird: 1. Verwenden Sie die Befehlszeile: SystemCTL Status Nginx (Linux/Unix), Netstat -ano | FindStr 80 (Windows); 2. Überprüfen Sie, ob Port 80 geöffnet ist; 3. Überprüfen Sie die Nginx -Startmeldung im Systemprotokoll. 4. Verwenden Sie Tools von Drittanbietern wie Nagios, Zabbix und Icinga.

So konfigurieren Sie Nginx in Windows So konfigurieren Sie Nginx in Windows Apr 14, 2025 pm 12:57 PM

Wie konfiguriere ich Nginx in Windows? Installieren Sie NGINX und erstellen Sie eine virtuelle Hostkonfiguration. Ändern Sie die Hauptkonfigurationsdatei und geben Sie die Konfiguration der virtuellen Host ein. Starten oder laden Nginx neu. Testen Sie die Konfiguration und sehen Sie sich die Website an. Aktivieren Sie selektiv SSL und konfigurieren Sie SSL -Zertifikate. Stellen Sie die Firewall selektiv fest, damit Port 80 und 443 Verkehr.

Wie kann ich überprüfen, ob Nginx begonnen wird? Wie kann ich überprüfen, ob Nginx begonnen wird? Apr 14, 2025 pm 12:48 PM

Verwenden Sie unter Linux den folgenden Befehl, um zu überprüfen, ob Nginx gestartet wird: SystemCTL -Status Nginx Richter basierend auf der Befehlsausgabe: Wenn "aktiv: aktiv (lief) angezeigt wird, wird Nginx gestartet. Wenn "Active: Inactive (Dead)" angezeigt wird, wird Nginx gestoppt.

So starten Sie Nginx unter Linux So starten Sie Nginx unter Linux Apr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

So starten Sie den Nginx -Server So starten Sie den Nginx -Server Apr 14, 2025 pm 12:27 PM

Das Starten eines Nginx-Servers erfordert unterschiedliche Schritte gemäß verschiedenen Betriebssystemen: Linux/UNIX-System: Installieren Sie das NGINX-Paket (z. B. mit APT-Get oder Yum). Verwenden Sie SystemCTL, um einen Nginx -Dienst zu starten (z. B. sudo systemctl start nginx). Windows -System: Laden Sie Windows -Binärdateien herunter und installieren Sie sie. Starten Sie Nginx mit der ausführbaren Datei nginx.exe (z. B. nginx.exe -c conf \ nginx.conf). Unabhängig davon, welches Betriebssystem Sie verwenden, können Sie auf die Server -IP zugreifen

So lösen Sie Nginx403 So lösen Sie Nginx403 Apr 14, 2025 am 10:33 AM

Wie fixiere ich Nginx 403 Verbotener Fehler? Überprüfen Sie die Datei- oder Verzeichnisberechtigungen; 2.Htaccess -Datei prüfen; 3. Überprüfen Sie die Konfigurationsdatei der Nginx; 4. Starten Sie Nginx neu. Weitere mögliche Ursachen sind Firewall -Regeln, Selinux -Einstellungen oder Anwendungsprobleme.

So lösen Sie Nginx304 Fehler So lösen Sie Nginx304 Fehler Apr 14, 2025 pm 12:45 PM

Antwort auf die Frage: 304 Nicht geänderter Fehler gibt an, dass der Browser die neueste Ressourcenversion der Client -Anfrage zwischengespeichert hat. Lösung: 1. Löschen Sie den Browser -Cache; 2. Deaktivieren Sie den Browser -Cache; 3. Konfigurieren Sie Nginx, um den Client -Cache zu ermöglichen. 4. Überprüfen Sie die Dateiberechtigungen; 5. Datei Hash prüfen; 6. Deaktivieren Sie CDN oder Reverse Proxy -Cache; 7. Starten Sie Nginx neu.

So lösen Sie Nginx403 -Fehler So lösen Sie Nginx403 -Fehler Apr 14, 2025 pm 12:54 PM

Der Server verfügt nicht über die Berechtigung, auf die angeforderte Ressource zuzugreifen, was zu einem NGINX 403 -Fehler führt. Zu den Lösungen gehören: Überprüfung der Dateiberechtigungen. Überprüfen Sie die Konfiguration .htaccess. Überprüfen Sie die Nginx -Konfiguration. Konfigurieren Sie Selinux -Berechtigungen. Überprüfen Sie die Firewall -Regeln. Fehlerbehebung bei anderen Ursachen wie Browserproblemen, Serverausfällen oder anderen möglichen Fehlern.

See all articles