Je teste nginx et souhaite afficher des variables dans les fichiers journaux. Comment puis-je faire cela et quel fichier journal ira-t-il (accès ou erreur).
Vous pouvez envoyer des valeurs de variable nginx via des en-têtes. Pratique pour le développement.
add_header X-uri "$uri";
et vous verrez dans les en-têtes de réponse de votre navigateur:
X-uri:/index.php
Je le fais parfois lors du développement local.
Il est également pratique pour vous dire si une sous-section est exécutée ou non. Saupoudrez-le simplement dans vos clauses pour voir si elles sont utilisées.
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
add_header X-debug-message "A static file was served" always;
...
}
location ~ \.php$ {
add_header X-debug-message "A php file was used" always;
...
}
Donc, visiter une URL comme http://www.example.com/index.php déclenchera le dernier en-tête lors de la visite http://www.example.com/img/my- ducky.png déclenchera l'ancien en-tête.
Vous pouvez renvoyer une chaîne simple comme réponse HTTP:
location /
{
return 200 $document_root;
}
Notez que vous devez visiter une page se terminant par .html
si vous ne souhaitez pas modifier les en-têtes de page.
Vous pouvez définir un format de journal d'accès personnalisé à l'aide de log_format
directive qui enregistre les variables qui vous intéressent.
Une autre option consiste à inclure le module echo lorsque vous construisez nginx, ou à installer OpenResty qui est nginx fourni avec un tas d'extensions (comme echo.)
Ensuite, vous pouvez simplement saupoudrer votre configuration avec des instructions comme:
echo "args: $args"