Посилання на кореневе розташування як змінну в блоці сервера {}


11

У моєму блоці сервера nginx {} у мене визначено корінь із шляхом. Як я можу пізніше вказати цей шлях?

Це те, що я намагаюся досягти:

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

    ...

    include $root/*.ngaccess;
}

На жаль, використання $ root не працює (тому що я його не визначив). Чи надає Nginx спосіб доступу до кореневого значення?

Відповіді:


15

Ви хочете, щоб document_rootзмінна.


Робити це: root / var / www / foosite / public /; включати $ document_root.ngaccess; Я отримую помилку "nginx: [emerg] open ()" /etc/nginx/$document_root/.ngaccess "не вдалося (2: Немає такого файлу чи каталогу)." $ document_root здається, що це було б рішення, але чи я щось набрав не так? Відповідно до цієї публікації (та інших, на які я натрапив) forum.linode.com/viewtopic.php?t=7898 , змінні не можна використовувати в операторах include. Що, якщо це правда, прикро.
skyler

Це означає, що nginx оцінює includeдирективу лише під час запуску, а не для кожного запиту (що має сенс), тому, здається, те, що ви хочете досягти, на жаль, неможливо.
mgorven

1
Я також зіткнувся з проблемою тут: "Значення шляху може містити змінні, крім $ document_root та $ realpath_root." nginx.org/uk/docs/http/…
редактор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.