nginx. Test de l'emplacement utilisé pour traiter la demande
Je me demandais comment puis-je savoir si un emplacement particulier[s] utilisé pour traiter la demande dans nginx
.
E. g.:
# 1
location /{}
# 2
location ~ /[\w\-]+\.html {}
# 3
location ~ /\w+\.html {}
Comment puis-je savoir si l'URI comme /mysite
est transformé en 3ème position, et non de la 2ème?
J'ai tendance à utiliser add_header
pour cette question:
location /{
add_header location 1;
}
location ~ /(\w+\-)\.html {
add_header location 2;
}
location @named {
add_header location named;
}
Et je voudrais savoir est-il une meilleure solution ou que pensez-vous personnellement l'utilisation à des fins de débogage?
- Cela ne fait qu'ajouter l'en-tête si votre code de réponse HTTP 200, 204, 301, 302 ou 304. Donc, il ne sera pas vous aider à suivre une erreur 404 : /
Vous devez vous connecter pour publier un commentaire.
La add_header astuce est de savoir comment je le ferais à.
Je suis au travail en ce moment, donc je ne peux pas tester, mais vous pourriez peut-être obtenir quelque chose dans le fichier je vous définissez la
error_log
niveau:debug
: vous êtes à la nginx doit être construit à l'aide de--with-debug
pour que cela fonctionne, vous pouvez vérifier avec lenginx -V
commandenotice
: si l'enregistrement de débogage n'est pas activéadd_header
astuce ne fonctionne pas dans ces circonstances particulières dans lesquelles vous SOUHAITEZ DÉBOGUER les plus désespérément: il ne fonctionne pas avec 4xx réponses.Si vous voulez juste pour voir le bloc a été utilisé, et ne se soucient pas de retour valide les résultats, il pourrait être plus simple à utiliser
return
plutôt queadd_header
.Un mot d'avertissement sur cette approche. J'ai trouvé que c'est une mauvaise idée d'utiliser
location
que votre debug-tête, carLocation
est un véritable en-tête utilisé par la réponse HTTP 301.Donc, si (comme moi) dans votre test vous retrouver avec ceci:
Votre navigateur va paniquer et rapport
Duplicate headers received from server
. Donc, utiliserlocationdebug
ou quelque chose de sûr.