Maison  >  Article  >  Opération et maintenance  >  Comment analyser le journal des erreurs nginx

Comment analyser le journal des erreurs nginx

步履不停
步履不停original
2019-06-21 09:51:506479parcourir

Comment analyser le journal des erreurs nginx

1. Introduction aux journaux

Il existe deux principaux types de journaux nginx : les journaux d'accès et les journaux d'erreurs. Le journal d'accès enregistre principalement chaque demande du client accédant à nginx, et le format peut être personnalisé ; le journal des erreurs enregistre principalement le journal lorsque le client accède à nginx et qu'une erreur se produit, et le format ne prend pas en charge la personnalisation. . Les deux journaux peuvent éventuellement être désactivés.

Grâce au journal d'accès, vous pouvez obtenir des informations pertinentes telles que la source géographique de l'utilisateur, la source du saut, l'utilisation du terminal, le nombre de visites à une certaine URL ; le journal des erreurs, vous pouvez Vous pouvez obtenir le goulot d'étranglement des performances d'un certain service système ou serveur, etc. Par conséquent, si vous faites bon usage des journaux, vous pouvez obtenir de nombreuses informations précieuses.

2. Journal d'accès

[Access.log]

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';

Nom de la variable

Description de la variable

Exemple

$remote_addr

Adresse du client

113.140.15.90

$remote_user

Nom d'utilisateur du client

-

$time_local

Visitez l'heure et le fuseau horaire

18/Jul/2012:17:00:01 +0800

$request

DemandéURI et HTTPProtocole

"GET /pa/img/home/logo-alipay-t.png HTTP / 1.1"

$http_host

Adresse de demande, c'est-à-dire l'adresse que vous saisissez dans le navigateur (IP ou nom de domaine)

img.alipay.com

10.253.70.103

$statut

HTTPStatut de la demande

200

$upstream_status

en amont Statut

200

$body_bytes_sent

Taille du contenu du fichier envoyé au client

547

$http_referer

Aller à la source

"https://cashier.alipay.com.../"

$http_user_agent

Agent de terminal utilisateur

"Mozilla/4.0 (compatible ; MSIE 8.0 ; Windows NT 5.1 ; Trident/4.0 ; SV1 ; GTB7.0 ; .NET4.0C ;

$ssl_protocol

SSLVersion du protocole

TLSv1

$ssl_cipher

Algorithmes en échange de données

RC4-SHA

$upstream_addr

Adresse

Backendamont, c'est-à-dire l'adresse de l'hôte qui fournit réellement les services

10.228.35.247:80

$request_time

Durée totale de la demande entière

0,205

$upstream_response_time

Pendant le processus de demande, amonttemps de réponse

0.002

 

线上实例:

116.9.137.90 - [02/Août/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 (compatible ; 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/Août/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 , comme Gecko) Chrome/21.0.1180.60 Safari/537.1"

Comment analyser le journal des erreurs nginx

 

备注:$http_referer和重定向有关。

 

线下测试($http_host ):

Comment analyser le journal des erreurs nginx

 

备注:$http_host的值和你在浏览器里输入的值有关。

3、错误日志

 

L'en-tête de réponse envoyé est invalideL'en-tête de réponse envoyé est invalide, corps

错误信息

错误说明

"en amont prématurément (过早的) connexion fermée"

请求uri的时候出现的异常,是由于en amont还未返回应答给用户时用户断掉连接造成的,对系统没有影响,可以忽略

"échec de recv() (104 : connexion réinitialisée par un homologue)"

1)服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉; 

2)客户关掉了浏览器,而服务器还在给客户端发送数据; 

3)浏览器端按了Arrêter

"(111 : Connexion refusée) lors de la connexion en amont"

用户在连接时,若遇到后端en amont挂掉或者不通,会收到该错误

"(111 : Connexion refusée) lors de la lecture de l'en-tête de réponse depuis l'amont"

Lorsque les utilisateurs lisent les données après une connexion réussie, si le backend en amont se bloque ou est bloqué, ils recevront cette erreur

"(111 : Connexion refusée) lors de l'envoi de la requête en amont"

Nginx et amont sont connectés avec succès et envoient des données, si le backend amont se bloque ou est bloqué, vous recevrez le erreur

"(110 : expiration du délai de connexion) lors de la connexion en amont "

nginx a expiré lors de la connexion au amont

"(110 : connexion expirée) lors de la lecture en amont"

nginxExpiration du délai lors de la lecture de la réponse de en amont

"(110 : expiration du délai de connexion) lors de la lecture de l'en-tête de réponse depuis l'amont"

nginxExpiration du délai lors de la lecture des en-têtes de réponse de en amont

"(110 : Délai de connexion expiré) lors de la lecture en amont"

nginxExpiration du délai lors de la lecture de la réponse de en amont

"(104 : Connexion réinitialisée par un homologue) lors de la connexion en amont"

en amontEnvoyer "En amont envoyé invalide" en-tête lors de la lecture de l'en-tête de réponse depuis l'amont"

en amont

"l'amont n'a envoyé aucun en-tête HTTP/1.0 valide lors de la lecture de l'en-tête de réponse de l'amont"

amont

"client destiné à envoyer un corps trop volumineux"

est utilisé pour définir la valeur maximale du contenu de la demande du client pouvant être accepté. La valeur par défaut est

1M
envoyé par 🎜>

client dépasse la valeur définie

"réouverture des journaux"L'utilisateur envoie kill -USR1

commande

"arrêt gracieux",

Utilisateur envoyé kill -WINCHCommand

"aucun serveur n'est à l'intérieur en amont"

amont n'est pas configuré sous serveur

"pas d'amont en direct lors de la connexion à l'amont"

amont serveurtous raccroché

"SSL_do_handshake( ) échec"

SSLÉchec de la prise de contact

"SSL_write() a échoué (SSL :) lors de l'envoi au client"

"(13 : Autorisation refusée) lors de la lecture en amont"

"(98 : Adresse déjà utilisée ) tout en se connectant à l'amont"

"(99 : Impossible d'attribuer l'adresse demandée) lors de la connexion en amont"

"Échec de ngx_slab_alloc() : pas de mémoire dans le cache partagé de la session SSL"

ssl_session_cache est causé par une taille insuffisante et d'autres raisons

"impossible d'ajouter une nouvelle session SSL au cache de session pendant la négociation SSL"

ssl_session_cache n'est pas assez grand, etc. Causes

"send() a échoué (111 : connexion refusée)"

Pour plus d'articles techniques liés à Nginx, veuillez visiter la colonne Tutoriel Nginx pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn