Référence de l'emplacement racine en tant que variable dans le bloc serveur {}


11

Dans mon bloc de serveur nginx {}, j'ai root défini avec un chemin d'accès. Comment puis-je référencer plus tard ce chemin?

Voici ce que j'essaie d'accomplir:

server {
    listen 80;
    root /var/www/foosite;

    ...

    include $root/*.ngaccess;
}

Malheureusement, l'utilisation de $ root ne fonctionne pas (car je ne l'ai pas défini). Nginx fournit-il un moyen d'accéder à la valeur racine?

Réponses:


15

Vous voulez la document_rootvariable.


Pour cela: root / var / www / foosite / public /; include $ document_root.ngaccess; J'obtiens l'erreur "nginx: [Emerg] open ()" /etc/nginx/$document_root/.ngaccess "a échoué (2: aucun fichier ou répertoire de ce type)." $ document_root semble être la solution, mais ai-je tapé quelque chose de mal? Selon ce post (et d'autres que j'ai rencontrés) forum.linode.com/viewtopic.php?t=7898 , les variables ne peuvent pas être utilisées dans les instructions d'inclusion. Ce qui, si c'est vrai, est regrettable.
skyler

Cela implique que nginx n'évalue la includedirective qu'au démarrage, pas pour chaque demande (ce qui est logique), il semble donc que ce que vous voulez réaliser ne soit malheureusement pas possible.
mgorven

1
J'ai également rencontré un problème ici: "La valeur du chemin peut contenir des variables, à l'exception de $ document_root et $ realpath_root." nginx.org/en/docs/http/…
éditeur
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.