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.