Referensi lokasi root sebagai variabel di blok server {}


11

Di blok nginx server {} saya, saya telah mendefinisikan root dengan path. Bagaimana nanti saya bisa mereferensikan jalur ini?

Inilah yang ingin saya capai:

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

    ...

    include $root/*.ngaccess;
}

Sayangnya menggunakan $ root tidak berfungsi (karena saya belum mendefinisikannya). Apakah Nginx menyediakan cara untuk mengakses nilai root?

Jawaban:


15

Anda menginginkan document_rootvariabel.


Melakukan ini: root / var / www / foosite / public /; termasuk $ document_root.ngaccess; Saya mendapatkan kesalahan "nginx: [emerg] open ()" /etc/nginx/$document_root/.ngaccess "gagal (2: Tidak ada file atau direktori seperti itu)." $ document_root sepertinya akan menjadi solusinya, tetapi sudahkah saya salah mengetik? Menurut pos ini (dan yang lainnya saya temui) forum.linode.com/viewtopic.php?t=7898 , variabel tidak dapat digunakan dalam pernyataan sertakan. Yang, jika benar, sangat disayangkan.
skyler

Itu menyiratkan bahwa nginx hanya mengevaluasi includearahan saat startup, tidak untuk setiap permintaan (yang masuk akal), sehingga tampaknya apa yang ingin Anda capai tidak mungkin sayangnya.
mgorven

1
Saya mengalami masalah di sini juga: "Nilai jalur dapat berisi variabel, kecuali $ document_root dan $ realpath_root." nginx.org/en/docs/http/…
editor
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.