So konfigurieren Sie Nginx-Zugriffs- und Fehlerprotokolle
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;
其中 log_file
是日志文件的完整路径, log_format
是日志文件使用的格式。可以在 http
, server
或 location
指令的上下文中启用访问日志。
默认情况下,Nginx主配置文件中的 http
指令配置了全局访问日志格式。
http { ... access_log /var/log/nginx/access.log; ... }
/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; ... } }
/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"';
要更改日志记录格式,请覆盖默认设置或定义一个新设置。例如,定义一个名为 main
的新日志记录格式,它将用添加 X-Forwarded-For
header的值来扩展 combined
格式,在 http
或 server
中添加以下定义指令:
log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
要使用新日志格式,请在日志文件后指定其名称,如下所示:
access_log /var/log/nginx/access.log custom;
虽然访问日志提供了非常有用的信息。但它会占用磁盘空间,并可能影响服务器性能。如果服务器资源不足,并且网站繁忙,则可能要禁用访问日志。为此,请将 access_log
伪指令的值设置为 off
。理论上你不会出现这种情况,Nginx会自动删除前期的日志文件:
access_log off;
配置错误日志
Nginx将应用程序和常规服务器错误的消息写入错误日志文件。如果你在Web应用程序中遇到错误,则错误日志是你开始进行排查问题的第一个位置。 error_log
指令启用并设置错误日志的位置和严重性级别。它采用以下格式,可以在 http
, server
或 location
上下文中进行设置:
error_log log_file log_level
log_level
参数设置日志记录级别。以下是按严重性从低到高列出的级别:
debug info notice warn error crit alert emerg
每个日志级别包括更高级别。例如,如果你将日志级别设置为 warn
,则Nginx还将记录 error
, crit
, alert
和 emerg
消息。未指定 log_level
参数时,默认为 error
。默认情况下, error_log
指令在主nginx.conf文件内的 http
指令上下文中定义:
http { ... error_log /var/log/nginx/error.log; ... }
/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; ... } }
无论何时修改配置文件,都必须重新加载Nginx服务,以使更改生效。
日志文件的位置
在大多数Linux发行版中,例如Ubuntu ,CentOS和Debian。默认情况下,访问和错误日志位于 /var/log/nginx
目录中。
读取和理解Nginx日志文件
你可以使用 cat
, less
, grep
, cut
, awk
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"
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"
让我们细分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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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.

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.

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.

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.

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

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.

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.

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.
