Android

Configuration du journal des erreurs et des accès nginx

How to fix the error mbstring extension is missing

How to fix the error mbstring extension is missing

Table des matières:

Anonim

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 Internet. Lors de la gestion des serveurs Web NGINX, l'une des tâches les plus fréquentes que vous effectuerez est la vérification des fichiers journaux.

Savoir configurer et lire les journaux est très utile pour résoudre les problèmes de serveur ou d'application car ils fournissent des informations de débogage détaillées.

Nginx écrit des enregistrements de ses événements dans deux types de journaux: les journaux d'accès et les journaux d'erreurs. Les journaux d'accès écrivent des informations sur les demandes des clients et les journaux d'erreurs écrivent des informations sur le serveur et les problèmes d'application.

Cet article explique comment configurer et lire les journaux d'accès et d'erreur Nginx.

Configuration du journal d'accès

Chaque fois qu'une demande client est traitée, Nginx génère un nouvel événement dans le journal d'accès. Chaque enregistrement d'événement contient un horodatage et comprend diverses informations sur le client et la ressource demandée. Les journaux d'accès peuvent vous montrer l'emplacement des visiteurs, la page qu'ils visitent, combien de temps ils passent sur la page, et bien plus encore.

La directive log_format vous permet de définir le format des messages enregistrés. La directive access_log active et définit l'emplacement du fichier journal et le format utilisé.

La syntaxe la plus élémentaire de la directive access_log est la suivante:

access_log log_file log_format;

log_file est le chemin d'accès complet au fichier journal et log_format est le format utilisé par le fichier journal.

Le journal d'accès peut être activé dans http , server ou bloc de directives d' location .

Par défaut, le journal d'accès est globalement activé dans la directive http à l'intérieur du fichier de configuration Nginx principal.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

Pour une meilleure maintenabilité, il est recommandé de définir un fichier journal d'accès distinct pour chaque bloc serveur. La directive access_log définie dans la directive server remplace celle définie dans la directive http (niveau supérieur).

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

Si aucun format de journal n'est spécifié, Nginx utilise le format combiné prédéfini qui ressemble à ceci:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

Pour modifier le format de journalisation, remplacez le paramètre par défaut ou définissez-en un nouveau. Par exemple, pour définir un nouveau format de journalisation nommé main qui étendra le format combiné avec la valeur montrant l'en X-Forwarded-For tête X-Forwarded-For ajoutez la définition suivante dans la directive http ou server :

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

Pour utiliser le nouveau format, spécifiez son nom après le fichier journal comme indiqué ci-dessous:

access_log /var/log/nginx/access.log custom;

Alors que le journal d'accès fournit des informations très utiles. cela prend de l'espace disque et peut affecter les performances du serveur. Si votre serveur manque de ressources et que votre site Web est occupé, vous souhaiterez peut-être désactiver le journal d'accès. Pour ce faire, off la valeur de la directive access_log :

access_log off;

Configuration du journal des erreurs

Nginx écrit des messages sur l'application et les erreurs générales du serveur dans le fichier journal des erreurs. Si vous rencontrez des erreurs dans votre application Web, le journal des erreurs est le premier point de départ pour résoudre les problèmes.

La directive error_log active et définit l'emplacement et le niveau de gravité du journal des erreurs. Il prend la forme suivante et peut être défini dans un bloc http , server ou location :

error_log log_file log_level

Le paramètre log_level définit le niveau de journalisation. Vous trouverez ci-dessous les niveaux répertoriés par leur gravité (de faible à élevé):

  • debug - Messages de débogage. info - Messages d'information. notice - Avis. warn - Avertissements. error - Erreurs lors du traitement d'une demande. crit - Problèmes critiques. Nécessite une action rapide. alert - Alertes. Des mesures doivent être prises immédiatement. emerg - Situation d'urgence. Le système est dans un état inutilisable.

Chaque niveau de journal comprend les niveaux supérieurs. Par exemple, si vous définissez le niveau de journalisation sur warn , Nginx enregistrera également les messages d' error , de crit , d' alert et d' emerg .

Lorsque le paramètre log_level n'est pas spécifié, sa valeur par défaut est error .

Par défaut, la directive error_log est définie dans la directive http à l'intérieur du fichier nginx.conf principal:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

Comme pour les journaux d'accès, il est recommandé de définir un fichier journal des erreurs distinct pour chaque bloc de serveur, qui remplace le paramètre hérité des niveaux supérieurs.

Par exemple, pour définir le journal d'erreurs de domain.com afin qu'il vous warn , utilisez:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

Chaque fois que vous modifiez le fichier de configuration, vous devez redémarrer le service Nginx pour que les modifications prennent effet.

Emplacement des fichiers journaux

Par défaut sur la plupart des distributions Linux, telles que Ubuntu, CentOS et Debian, les journaux d'accès et d'erreur se trouvent dans le répertoire /var/log/nginx .

Lecture et compréhension des fichiers journaux Nginx

Vous pouvez ouvrir et analyser les fichiers journaux à l'aide de commandes standard comme cat , less , grep , cut , awk , etc.

Voici un exemple d'enregistrement du fichier journal d'accès qui utilise le format de journal Nginx par défaut:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Décomposons ce que signifie chaque champ de l'enregistrement:

  • $remote_addr - 192.168.33.1 - L'adresse IP du client qui fait la demande. $remote_user - - - Utilisateur authentifié HTTP. Lorsque le nom d'utilisateur n'est pas défini, ce champ affiche - . - - Heure du serveur local. "$request" - "GET / - Le type de demande, le chemin et le protocole. $status - 200 - Le code de réponse du serveur. $body_bytes_sent - 396 - La taille de la réponse du serveur en octets. "$http_referer" - "-" - L'URL de la référence. "$http_user_agent" - Mozilla/5.0… - L'agent utilisateur du client (navigateur Web).

Utilisez la commande tail pour regarder le fichier journal en temps réel:

tail -f access.log

Conclusion

Les fichiers journaux vous fournissent des informations utiles sur les problèmes de serveur et la façon dont les visiteurs interagissent avec votre site Web.

Nginx vous permet de configurer les journaux d'accès et d'erreur en fonction de vos besoins.

nginx