Odwołaj się do katalogu głównego jako zmiennej w bloku serwera {}

11

W moim bloku serwera nginx {} mam root zdefiniowany ze ścieżką. Jak mogę później odwołać się do tej ścieżki?

Oto, co próbuję osiągnąć:

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

    ...

    include $root/*.ngaccess;
}

Niestety użycie $ root nie działa (ponieważ go nie zdefiniowałem). Czy Nginx zapewnia sposób dostępu do wartości głównej?

skyler
źródło

Odpowiedzi:

15

Chcesz document_rootzmienną.

mgorven
źródło
Robi to: root / var / www / foosite / public /; dołącz $ document_root.ngaccess; Pojawia się błąd „nginx: [emerg] open ()” /etc/nginx/$document_root/.ngaccess „nie powiodło się (2: brak takiego pliku lub katalogu).” $ document_root wydaje się być rozwiązaniem, ale czy wpisałem coś źle? Zgodnie z tym postem (i innymi, z którymi się spotkałem) forum.linode.com/viewtopic.php?t=7898 , zmiennych nie można używać w instrukcjach dołączania. Co, jeśli to prawda, jest niefortunne.
skyler
Oznacza to, że nginx ocenia includedyrektywę tylko podczas uruchamiania, a nie dla każdego żądania (co ma sens), więc wydaje się, że to, co chcesz osiągnąć, nie jest niestety możliwe.
mgorven
1
Zetknąłem się również z problemem: „Wartość ścieżki może zawierać zmienne, z wyjątkiem $ katalog_główny_katalog i $ realpath_root.” nginx.org/en/docs/http/…
redaktor