So analysieren Sie das Nginx-Fehlerprotokoll
1. Protokolleinführung
Es gibt zwei Haupttypen von Nginx-Protokollen: Zugriffsprotokolle und Fehlerprotokolle. Das Zugriffsprotokoll zeichnet hauptsächlich jede Anfrage des Clients auf, der auf nginx zugreift, und das Format kann angepasst werden. Das Fehlerprotokoll zeichnet hauptsächlich das Protokoll auf, wenn der Client auf nginx zugreift und ein Fehler auftritt, und das Format unterstützt keine Anpassung . Beide Protokolle können optional ausgeschaltet werden.
Über das Zugriffsprotokoll können Sie relevante Informationen wie die geografische Herkunft des Benutzers, die Sprungquelle, die Terminalnutzung und die Anzahl der Besuche einer bestimmten URL abrufen Im Fehlerprotokoll können Sie den Leistungsengpass eines bestimmten Systemdienstes oder Servers usw. ermitteln. Daher können Sie durch die sinnvolle Nutzung von Protokollen viele wertvolle Informationen erhalten.
2. Zugriffsprotokoll
[Zugriffsprotokoll]
log_format main '$remote_addr $remote_user [$time_local] "$request" $http_host '
'$status $upstream_status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $ssl_protocol $ssl_cipher $upstream_addr '
"$request_time $upstream_response_time';
Variablenname |
Variablenbeschreibung |
Beispiel |
$remote_addr |
Kundenadresse | 113.140.15.90 |
$remote_user |
Client-Benutzername | - |
$time_local |
Besuchen Sie Zeit und Zeitzone | 18/Jul/2012:17:00:01 +0800 |
$request |
AngefordertURI und HTTPProtokoll |
"GET /pa/img/home/logo-alipay-t.png HTTP / 1,1" |
$http_host |
Adresse anfordern, also die Adresse, die Sie im Browser eingeben (IP oder Domainname) |
img.alipay.com 10.253.70.103 |
$status |
HTTPAnfragestatus |
200 |
$upstream_status |
upstream Status |
200 |
$body_bytes_sent |
Größe des an den Client gesendeten Dateiinhalts |
547 |
$http_referer |
Quelle springen |
"https://cashier.alipay.com.../" |
$http_user_agent |
Benutzer-Terminal-Agent |
"Mozilla/4.0 (kompatibel; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C ; |
$ssl_protocol |
SSLProtokollversion |
TLSv1 |
$ssl_cipher |
Algorithmen in Austauschdaten |
RC4-SHA |
$upstream_addr |
BackendUpstream Adresse, also die Hostadresse, die tatsächlich Dienste bereitstellt |
10.228.35.247:80 |
$request_time |
Gesamtzeit der gesamten Anfrage |
0,205 |
$upstream_response_time |
Während des Anfrageprozesses UpstreamAntwortzeit |
0,002 |
线上实例:
116.9.137.90 - [02/Aug/2012:14:47:12 +0800] „GET /images/XX/20100324752729.png HTTP/1.1“img.alipay.com 200 200 2038 https://cashier.alipay.com/XX/PaymentResult.htm?payNo=XX&outBizNo=2012XX “ Mozilla/4.0 (kompatibel; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; 360SE )" TLSv1 AES128-SHA 10.228.21.237:80 0,198 0,001 $http_referer
):10.14.21.197 - - [14/Aug/2012:17:28:22 +0800] "GET /spanner/watch/v1?--db=ztg-1&--mode=compare&--index=status&--option=&--cluster=whole&-F=2012%2F8%2F12-00%3A00%3A00&-T =%2B2880&-i=1&-n=0&_=1344936501292 HTTP/1.1" 200 94193 "http://spanner.alipay.net/optionFrame/history.html" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.1 (KHTML , wie Gecko) Chrome/21.0.1180.60 Safari/537.1"
备注:
$http_referer和重定向有关.线下测试($http_host ):
备注:
$http_host的值和你在浏览器里输入的值有关错误信息
错误说明
"stromaufwärts vorzeitig | (过早的)geschlossene Verbindung" |
|
请求uri的时候出现的异常,是由于Upstream还未返回应答给用户时用户断掉连接造成的,对系统没有影响,可以忽略 |
"recv() fehlgeschlagen (104: Verbindung vom Peer zurückgesetzt)" |
|
1 )服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; |
(2)客户关掉了浏览器,而服务器还在给客户端发送数据; (3)浏览器端按了Stopp "(111: Verbindung verweigert) beim Herstellen einer Verbindung zum Upstream" |
|
upstream 挂掉或者不通,会收到该错误 |
"(111: Verbindung abgelehnt) beim Lesen des Antwortheaders vom Upstream" |
Wenn Benutzer nach einer erfolgreichen Verbindung Daten lesen und das Backend Upstream hängt oder blockiert ist, erhalten sie diesen Fehler |
"(111: Verbindung verweigert) beim Senden der Anfrage an den Upstream" |
Nginx und Upstream sind erfolgreich verbunden und senden Daten. Wenn das Backend Upstream hängt oder blockiert ist, erhalten Sie das Fehler |
|
"(110: Zeitüberschreitung der Verbindung) beim Herstellen einer Verbindung zum Upstream " |
nginx Zeitüberschreitung beim Herstellen einer Verbindung zum nachfolgenden Upstream |
|
"(110: Zeitüberschreitung der Verbindung) beim Upstream-Lesen" |
nginxZeitüberschreitung beim Lesen der Antwort von Upstream
|
|
"(110: Zeitüberschreitung der Verbindung) beim Lesen des Antwortheaders vom Upstream" |
nginxZeitüberschreitung beim Lesen von Antwortheadern von Upstream |
|
"(110: Zeitüberschreitung der Verbindung) beim Upstream-Lesen" |
nginxZeitüberschreitung beim Lesen der Antwort von Upstream |
|
"(104: Verbindung vom Peer zurückgesetzt) beim Herstellen einer Verbindung zum Upstream" |
UpstreamSenden „Upstream ungültig gesendet“ Header beim Lesen des Antwortheaders vom Upstream“ | Upstream|
| "Upstream hat beim Lesen des Antwortheaders vom Upstream keinen gültigen HTTP/1.0-Header gesendet"
| Upstream|
wird verwendet, um den Maximalwert des Clientanforderungsinhalts festzulegen, der akzeptiert werden darf. Der Standardwert ist | 1M ||
gesendete Text überschreitet den eingestellten Wert |
"Protokolle erneut öffnen"Benutzer sendet kill -USR1 | Befehl|
"ordnungsgemäß heruntergefahren", |
Benutzer gesendet kill -WINCHBefehl |
|
„Keine Server befinden sich im Upstream“ |
Upstream ist nicht unter Server | |
„keine Live-Upstreams während der Verbindung zum Upstream“ |
Upstream Serveralles aufgehängt |
|
"SSL_do_handshake( ) fehlgeschlagen" |
SSLHandshake fehlgeschlagen |
|
„SSL_write() fehlgeschlagen (SSL:) beim Senden an den Client“ |
|
|
"(13: Erlaubnis verweigert) beim Lesen im Upstream" |
|
|
"(98: Adresse bereits verwendet ) während der Verbindung zum Upstream“ |
|
|
"(99: Angeforderte Adresse kann nicht zugewiesen werden) beim Herstellen einer Verbindung zum Upstream" |
|
|
"ngx_slab_alloc() failed: no Memory in SSL Session Shared Cache" |
ssl_session_cache wird durch unzureichende Größe und andere Gründe verursacht |
|
„Während des SSL-Handshakes konnte keine neue SSL-Sitzung zum Sitzungscache hinzugefügt werden“ |
ssl_session_cache nicht groß genug usw. Ursachen |
|
"send() failed (111: Connection failed)" |
|
Das obige ist der detaillierte Inhalt vonSo analysieren Sie das Nginx-Fehlerprotokoll. 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

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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





Die Methoden, die die Nginx -Version abfragen können, sind: Verwenden Sie den Befehl nginx -v; Zeigen Sie die Versionsrichtlinie in der Datei nginx.conf an. Öffnen Sie die Nginx -Fehlerseite und sehen Sie sich den Seitentitel an.

So konfigurieren Sie einen Nginx -Domänennamen auf einem Cloud -Server: Erstellen Sie einen Datensatz, der auf die öffentliche IP -Adresse des Cloud -Servers zeigt. Fügen Sie virtuelle Hostblöcke in die NGINX -Konfigurationsdatei hinzu, wobei der Hörport, Domänenname und das Root -Verzeichnis der Website angegeben werden. Starten Sie Nginx neu, um die Änderungen anzuwenden. Greifen Sie auf die Konfiguration des Domänennamens zu. Weitere Hinweise: Installieren Sie das SSL -Zertifikat, um HTTPS zu aktivieren, sicherzustellen, dass die Firewall den Verkehr von Port 80 ermöglicht, und warten Sie, bis die DNS -Auflösung wirksam wird.

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.

Sie können den Namen des Docker -Containers abfragen, indem Sie den Schritten folgen: Alle Container auflisten (Docker PS). Filtern Sie die Containerliste (unter Verwendung des GREP -Befehls). Ruft den Containernamen ab (befindet sich in der Spalte "Namen").

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.

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

Erstellen Sie einen Container in Docker: 1. Ziehen Sie das Bild: Docker Pull [Spiegelname] 2. Erstellen Sie einen Container: Docker Ausführen [Optionen] [Spiegelname] [Befehl] 3. Starten Sie den Container: Docker Start [Containername]

Startschritte des Docker -Containers: Ziehen Sie das Containerbild: Führen Sie "Docker Pull [Mirror Name]" aus. Erstellen eines Containers: Verwenden Sie "Docker erstellen [Optionen] [Spiegelname] [Befehle und Parameter]". Starten Sie den Container: Führen Sie "Docker Start [Container Name oder ID]" aus. Containerstatus überprüfen: Stellen Sie sicher, dass der Container mit "Docker PS" ausgeführt wird.
