1 votes

Le journal des erreurs de Nginx ne lit pas les variables

Dans mon serveur virtuel, j'ai :

root   /var/www/$server_name/public_html;
index  index.php;

access_log /var/log/nginx/$server_name.access.log;
error_log  /var/log/nginx/$server_name.error.log debug;

Pour la racine et le journal d'accès, l'option $server_name travail. Il ne fonctionne pas pour le journal des erreurs.

enter image description here

Je vois qu'il est défini par root au lieu de pi (j'utilise pi 代わりに data-www ) Comment résoudre ce problème ?

nginx/1.13.5

5voto

Marco Gomez Points 66

Pour autant que je sache, les variables ne sont toujours pas autorisées en error_log même si vous pouvez les utiliser dans access_log (comme le montre votre capture d'écran qui fonctionne correctement dans votre scénario).

En outre, vous devriez presque toujours utiliser $host car c'est la seule variable garantie de dire quelque chose de sensé quel que soit le comportement de l'agent utilisateur.

Vous pouvez vérifier la différence entre $host et $server_name en cliquant sur documentation nginx :

  • $host Le nom de l'hôte doit être indiqué dans l'ordre suivant : nom de l'hôte dans la ligne de requête, ou nom de l'hôte dans le champ d'en-tête "Host" de la requête, ou nom du serveur correspondant à une requête.

  • $server_name nom du serveur qui a accepté une demande. Elle contient le server_name de l'hôte virtuel qui a traité la requête, tel qu'il a été défini dans la configuration de nginx. Si un serveur contient plusieurs noms de serveur, seul le premier sera présent dans cette variable.

Comme vous devez tenir compte de toutes les choses possibles qu'un agent utilisateur peut faire lorsqu'il formule une requête HTTP (les anciennes requêtes HTTP/1.0 et les logiciels modernes mal écrits peuvent se produire en permanence), vous devriez envisager de n'utiliser que l'attribut $host pour l'usage que vous souhaitez en faire.

Il convient de mentionner que access_log est traité por ngx_http_log_module , while error_log est traité un peu différemment en tant que ngx_core_module .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X