Referenzstammspeicherort als Variable im Serverblock {}


11

In meinem Nginx Server {} Block habe ich root mit einem Pfad definiert. Wie kann ich später auf diesen Pfad verweisen?

Folgendes versuche ich zu erreichen:

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

    ...

    include $root/*.ngaccess;
}

Leider funktioniert die Verwendung von $ root nicht (weil ich es nicht definiert habe). Bietet Nginx eine Möglichkeit, auf den Stammwert zuzugreifen?

Antworten:


15

Sie möchten die document_rootVariable.


Gehen Sie dazu folgendermaßen vor: root / var / www / foosite / public /; include $ document_root.ngaccess; Ich erhalte die Fehlermeldung "nginx: [emerg] open ()" /etc/nginx/$document_root/.ngaccess "fehlgeschlagen (2: Keine solche Datei oder kein solches Verzeichnis)." $ document_root scheint die Lösung zu sein, aber habe ich etwas falsch eingegeben? Laut diesem Beitrag (und anderen, auf die ich gestoßen bin) forum.linode.com/viewtopic.php?t=7898 können Variablen nicht in include-Anweisungen verwendet werden. Was, wenn es stimmt, unglücklich ist.
Skyler

Dies bedeutet, dass nginx die includeDirektive nur beim Start bewertet , nicht für jede Anforderung (was sinnvoll ist). Es scheint also, dass das, was Sie erreichen möchten, leider nicht möglich ist.
mgorven

1
Ich bin auch hier auf ein Problem gestoßen: "Der Pfadwert kann Variablen enthalten, außer $ document_root und $ realpath_root." nginx.org/en/docs/http/…
Herausgeber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.