Table des matières
Configurer le journal d'accès Nginx
配置错误日志
日志文件的位置
读取和理解Nginx日志文件
Maison Opération et maintenance Nginx Comment configurer les journaux d'accès et d'erreurs Nginx

Comment configurer les journaux d'accès et d'erreurs Nginx

May 16, 2023 am 08:10 AM
nginx

Nginx est un serveur HTTP et proxy inverse open source et hautes performances chargé de gérer la charge de certains des plus grands sites sur Internet. L'une des tâches les plus courantes que vous effectuerez lors de la gestion d'un serveur Web NGINX consiste à vérifier les fichiers journaux.

Savoir comment configurer et lire les journaux est très utile lors du dépannage des problèmes de serveur ou d'application, car ils fournissent des informations de débogage détaillées.

Nginx utilise deux types de journaux pour enregistrer ses événements : les journaux d'accès et les journaux d'erreurs. La journalisation d'accès enregistre des informations sur les demandes des clients et la journalisation des erreurs enregistre des informations sur les problèmes de serveur et d'application.

Configurer le journal d'accès Nginx

Nginx générera un nouvel enregistrement dans le journal d'accès chaque fois qu'une demande client est traitée. Chaque enregistrement d'événement contient un horodatage et contient diverses informations sur le client et la ressource demandée. Les journaux d'accès peuvent montrer l'emplacement du visiteur, les pages visitées par le visiteur, etc.

La directive log_format permet de définir le format de journalisation. La directive access_log active et définit l'emplacement et le format des fichiers journaux. log_format 指令允许你定义记录日志的格式。 access_log 指令启用并设置日志文件的位置和使用的格式。

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

access_log log_file log_format;
Copier après la connexion

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

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

http {
  ...
  access_log  /var/log/nginx/access.log;
  ...
}
Copier après la connexion

/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;
    ...
  }
}
Copier après la connexion

/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"';
Copier après la connexion

要更改日志记录格式,请覆盖默认设置或定义一个新设置。例如,定义一个名为 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"';
Copier après la connexion

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

access_log  /var/log/nginx/access.log custom;
Copier après la connexion

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

access_log off;
Copier après la connexion

配置错误日志

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

error_log log_file log_level
Copier après la connexion

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

debug
info
notice
warn
error
crit
alert
emerg
Copier après la connexion

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

http {
  ...
  error_log  /var/log/nginx/error.log;
  ...
}
Copier après la connexion

/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;
    ...
  }
}
Copier après la connexion

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

日志文件的位置

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

读取和理解Nginx日志文件

你可以使用 catlessgrepcutawk

La syntaxe la plus basique de la directive access_log est la suivante : 🎜
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"
Copier après la connexion
Copier après la connexion
🎜où log_file est le chemin complet du fichier journal, et log_format</code > est le format utilisé pour le fichier journal. La journalisation des accès peut être activée dans le contexte d'une directive <code>http , server ou location. 🎜🎜Par défaut, la directive http dans le fichier de configuration principal de Nginx configure le format du journal d'accès global. 🎜rrreee🎜/etc/nginx/nginx.conf🎜🎜Pour une meilleure maintenabilité, il est recommandé de configurer un fichier journal d'accès distinct pour chaque serveur. La directive access_log définie dans la directive server écrasera la directive access_log définie dans la directive http. 🎜rrreee🎜/etc/nginx/conf.d/domain.com.conf🎜🎜Si aucun format de journal n'est spécifié, Nginx utilisera le format combiné prédéfini comme suit : 🎜rrreee🎜Pour modifier le format de journalisation, remplacez le paramètre par défaut ou définissez un nouveau décor. Par exemple, définissez un nouveau format de journalisation appelé main qui étendra le format combiné en ajoutant la valeur de l'en-tête X-Forwarded-For, ajoutez la directive de définition suivante dans http ou server : 🎜rrreee🎜Pour utiliser le nouveau format de journal, spécifiez son nom après le fichier journal, comme suit : 🎜rrreee🎜 Bien que l'accès les journaux fournissent des informations très utiles. Mais cela occupe de l'espace disque et peut affecter les performances du serveur. Si votre serveur manque de ressources et que votre site est occupé, vous souhaiterez peut-être désactiver les journaux d'accès. Pour ce faire, définissez la valeur de la directive access_log sur off . Théoriquement, vous n'aurez pas cette situation, Nginx supprimera automatiquement les fichiers journaux précédents : 🎜rrreee🎜Journal des erreurs de configuration🎜🎜Nginx écrit les messages d'erreur généraux de l'application et du serveur dans le fichier journal des erreurs. Si vous rencontrez une erreur dans votre application Web, le journal des erreurs est le premier endroit où commencer pour résoudre le problème. La directive error_log active et définit l'emplacement et le niveau de gravité du journal des erreurs. Il prend le format suivant et peut être défini dans le contexte http , server ou location : 🎜rrreee🎜log_level paramètre Définir le niveau de journalisation. Voici les niveaux répertoriés de faible à élevé : 🎜rrreee🎜 Chaque niveau de journal comprend des niveaux plus élevés. Par exemple, si vous définissez le niveau de journalisation sur warn , Nginx enregistrera également error , crit , alert et Message émergent. Lorsque le paramètre log_level n'est pas spécifié, la valeur par défaut est error. Par défaut, la directive error_log est définie dans le contexte de la directive http dans le fichier nginx.conf principal : 🎜rrreee🎜/etc/nginx/nginx.conf est le comme pour le journal d'accès, il est recommandé de configurer un fichier journal d'erreurs distinct pour chaque serveur, qui remplacera les paramètres de niveau supérieur tels que le contexte de la directive http. Par exemple, pour définir le journal des erreurs de domain.com sur warn , vous utiliserez : 🎜rrreee🎜 Chaque fois que vous modifiez le fichier de configuration, vous devez recharger le service Nginx pour que les modifications prennent effet. 🎜🎜Emplacement des fichiers journaux 🎜🎜 dans la plupart des distributions Linux telles que Ubuntu, CentOS et Debian. Par défaut, les journaux d'accès et d'erreurs se trouvent dans le répertoire /var/log/nginx. 🎜🎜Lire et comprendre les fichiers journaux Nginx🎜🎜Vous pouvez utiliser cat, less, grep, cut, < code>awk et d'autres commandes ouvrent et analysent les fichiers journaux nginx. Voici l'enregistrement du fichier journal d'accès utilisant le format de journal Nginx par défaut : 🎜
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"
Copier après la connexion
Copier après la connexion

让我们细分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

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment vérifier si Nginx est démarré Comment vérifier si Nginx est démarré Apr 14, 2025 pm 01:03 PM

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.

Comment configurer Nginx dans Windows Comment configurer Nginx dans Windows Apr 14, 2025 pm 12:57 PM

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.

Comment vérifier si Nginx est démarré? Comment vérifier si Nginx est démarré? Apr 14, 2025 pm 12:48 PM

Dans Linux, utilisez la commande suivante pour vérifier si Nginx est démarré: SystemCTL Status Nginx Juges Basé sur la sortie de la commande: si "Active: Active (Running)" s'affiche, Nginx est démarré. Si "Active: Inactive (Dead)" est affiché, Nginx est arrêté.

Comment démarrer Nginx dans Linux Comment démarrer Nginx dans Linux Apr 14, 2025 pm 12:51 PM

Étapes pour démarrer Nginx dans Linux: Vérifiez si Nginx est installé. Utilisez SystemCTL Start Nginx pour démarrer le service NGINX. Utilisez SystemCTL Activer Nginx pour activer le démarrage automatique de Nginx au démarrage du système. Utilisez SystemCTL Status Nginx pour vérifier que le démarrage est réussi. Visitez http: // localhost dans un navigateur Web pour afficher la page de bienvenue par défaut.

Comment démarrer le serveur Nginx Comment démarrer le serveur Nginx Apr 14, 2025 pm 12:27 PM

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 résoudre nginx403 Comment résoudre nginx403 Apr 14, 2025 am 10:33 AM

Comment corriger l'erreur interdite Nginx 403? Vérifier les autorisations de fichier ou de répertoire; 2. Vérifier le fichier .htaccess; 3. Vérifiez le fichier de configuration NGINX; 4. Redémarrer Nginx. D'autres causes possibles incluent les règles de pare-feu, les paramètres de Selinux ou les problèmes d'application.

Comment résoudre l'erreur Nginx304 Comment résoudre l'erreur Nginx304 Apr 14, 2025 pm 12:45 PM

Réponse à la question: 304 Erreur non modifiée indique que le navigateur a mis en cache la dernière version de ressource de la demande du client. Solution: 1. Effacer le cache du navigateur; 2. Désactiver le cache du navigateur; 3. Configurer Nginx pour permettre le cache client; 4. Vérifier les autorisations du fichier; 5. Vérifier le hachage du fichier; 6. Désactiver le CDN ou le cache proxy inversé; 7. Redémarrez Nginx.

Comment résoudre l'erreur Nginx403 Comment résoudre l'erreur Nginx403 Apr 14, 2025 pm 12:54 PM

Le serveur n'a pas l'autorisation d'accéder à la ressource demandée, ce qui donne une erreur NGINX 403. Les solutions incluent: vérifier les autorisations de fichiers. Vérifiez la configuration .htaccess. Vérifiez la configuration de Nginx. Configurez les autorisations Selinux. Vérifiez les règles du pare-feu. Dépanner d'autres causes telles que les problèmes de navigateur, les défaillances du serveur ou d'autres erreurs possibles.

See all articles