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"
备注:$http_referer和重定向有关。
线下测试($http_host ):
备注:$http_host的值和你在浏览器里输入的值有关。
3、错误日志
错误信息 |
错误说明 |
"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'en-tête de réponse envoyé est invalide
"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 | L'en-tête de réponse envoyé est invalide
"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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Les méthodes qui peuvent interroger la version Nginx sont: utilisez la commande nginx -v; Afficher la directive de version dans le fichier nginx.conf; Ouvrez la page d'erreur Nginx et affichez le titre de la page.

Comment configurer un nom de domaine NGINX sur un serveur cloud: Créez un enregistrement A pointant vers l'adresse IP publique du serveur cloud. Ajoutez des blocs d'hôtes virtuels dans le fichier de configuration Nginx, en spécifiant le port d'écoute, le nom de domaine et le répertoire racine du site Web. Redémarrez Nginx pour appliquer les modifications. Accéder à la configuration du test de nom de domaine. Autres notes: Installez le certificat SSL pour activer HTTPS, assurez-vous que le pare-feu autorise le trafic Port 80 et attendez que la résolution DNS prenne effet.

Comment confirmer si Nginx est démarré: 1. Utilisez la ligne de commande: SystemCTl Status Nginx (Linux / Unix), netStat -ano | Findstr 80 (Windows); 2. Vérifiez si le port 80 est ouvert; 3. Vérifiez le message de démarrage NGINX dans le journal système; 4. Utilisez des outils tiers, tels que Nagios, Zabbix et Icinga.

Vous pouvez interroger le nom du conteneur Docker en suivant les étapes: répertorier tous les conteneurs (Docker PS). Filtrez la liste des conteneurs (à l'aide de la commande grep). Obtient le nom du conteneur (situé dans la colonne "Noms").

Le démarrage d'un serveur Nginx nécessite différentes étapes en fonction des différents systèmes d'exploitation: Système Linux / Unix: Installez le package NGINX (par exemple, en utilisant Apt-Get ou Yum). Utilisez SystemCTL pour démarrer un service NGINX (par exemple, sudo systemctl start nginx). Système Windows: téléchargez et installez les fichiers binaires Windows. Démarrer Nginx à l'aide de l'exécutable Nginx.exe (par exemple, nginx.exe -c conf \ nginx.conf). Peu importe le système d'exploitation que vous utilisez, vous pouvez accéder au serveur IP

Comment configurer Nginx dans Windows? Installez Nginx et créez une configuration d'hôte virtuelle. Modifiez le fichier de configuration principale et incluez la configuration de l'hôte virtuel. Démarrer ou recharger nginx. Testez la configuration et affichez le site Web. Activer sélectivement SSL et configurer les certificats SSL. Définissez sélectivement le pare-feu pour permettre le trafic Port 80 et 443.

Créer un conteneur dans Docker: 1. Tirez l'image: docker pull [Nom du miroir] 2. Créer un conteneur: docker run [Options] [Nom du miroir] [Commande] 3. Démarrez le conteneur: docker start [Nom du conteneur]

Pour faire en sorte que Nginx exécute Apache, vous devez: 1. Installez Nginx et Apache; 2. Configurer l'agent Nginx; 3. Démarrer Nginx et Apache; 4. Testez la configuration pour vous assurer que vous pouvez voir le contenu Apache après avoir accédé au nom de domaine. De plus, vous devez faire attention à d'autres questions telles que la correspondance du numéro de port, la configuration de l'hôte virtuel et les paramètres SSL / TLS.
