Je teste nginx et je veux envoyer des variables dans les fichiers journaux. Comment puis-je faire cela et dans quel fichier journal cela va-t-il aller (accès ou erreur).
Réponses
Trop de publicités?Vous pouvez envoyer à nginx des valeurs variables via les 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 pendant le développement local.
C'est également pratique pour vous dire si une sous-section est exécutée ou non. Il suffit de le saupoudrer dans vos clauses pour savoir 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;
...
}
Ainsi, en visitant une url comme http://www.example.com/index.php déclenchera ce dernier en-tête tout en visitant http://www.example.com/img/my-ducky.png déclenchera l'ancien en-tête.
Vous pouvez définir un format de journal d'accès personnalisé à l'aide de l'option log_format
qui enregistre les variables qui vous intéressent.
Une autre option consiste à inclure le module écho lorsque vous construisez nginx, ou installez OpenResty qui est nginx groupé avec un tas d'extensions (comme echo.)
Ensuite, vous pouvez simplement saupoudrer votre configuration de déclarations comme :
echo "args: $args"
Aucun de ces éléments ne répond à la question posée (log)
Cependant, @Victor Aguilar - a un commentaire sur cette réponse, qui devrait être une réponse ! Il indique comment enregistrer les variables, et cela fonctionne. Merci !
https://serverfault.com/a/404628/400075
c'est-à-dire dans /etc/nginx/nginx.conf
error_log /var/log/nginx/error.log debug;
donne lieu au type d'enregistrement suivant :
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "SCRIPT_FILENAME: /usr/lib/cgit/cgit.cgi/something.git/cgit.cgi"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "QUERY_STRING"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "QUERY_STRING: "
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "REQUEST_METHOD"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script var: "GET"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "REQUEST_METHOD: GET"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "CONTENT_TYPE"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "CONTENT_TYPE: "
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "CONTENT_LENGTH"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "CONTENT_LENGTH: "
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "SCRIPT_NAME"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script var: "/cgit/cgit.cgi/something.git/cgit.cgi"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "SCRIPT_NAME: /cgit/cgit.cgi/something.git/cgit.
cgi"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "REQUEST_URI"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script var: "/cgit/cgit.cgi/something.git/"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "REQUEST_URI: /cgit/cgit.cgi/something.git/"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "DOCUMENT_URI"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script var: "/cgit/cgit.cgi/something.git/"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "DOCUMENT_URI: /cgit/cgit.cgi/something.git/"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "DOCUMENT_ROOT"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script var: "/usr/lib"
2021/03/06 15:14:48 [debug] 2550#2550: *1 fastcgi param: "DOCUMENT_ROOT: /usr/lib"
2021/03/06 15:14:48 [debug] 2550#2550: *1 http script copy: "SERVER_PROTOCOL"
2021/03/06 15:14:48 [debug] 2550#2550: *....