Lokasi 'global' NGINX

9

Apakah mungkin membuat lokasi 'global' untuk server NGINX? Saya ingin setiap situs yang dilayani oleh NGINX memiliki akses ke / global / folder; Sepanjang garis

http {
    [...stuff...]

    #Global path
    location /global/ {
        root /my/global/location/;
    }

    server {
        listen          127.0.0.1:80;
        server_name     example.com;

        [...standard config...]
    }

    server {
        listen          127.0.0.1:80;
        server_name     example.org;

        [...standard config...]
    }

    server {
        listen          127.0.0.1:80;
        server_name     example.net;

        [...standard config...]
    }
}

Dan dapat mengakses file di lokasi global dari http://example.com/global/ http://example.org/global/ dll.

Saya dapat melakukan ini jika saya menambahkan blok lokasi global ke setiap serverblok tetapi itu menjengkelkan, saya ingin mendefinisikannya secara global dan dapat mengaksesnya dari dalam situs.

Saya bisa menggunakan includearahan di setiap host, tetapi masih membutuhkan spesifikasi di setiap host. Wiki NGINX mengatakan blok 'lokasi' hanya valid dalam serverkonteks tetapi saya tidak tahu apakah ada trik menulis ulang atau sesuatu yang serupa.

Noda
sumber
ada pembaruan tentang ini? ~ 4 tahun kemudian?
w00t

Jawaban:

3

Ini bukan tidak dan sejauh yang saya tahu tidak ada pembicaraan untuk mengubahnya juga.

Martin Fjordvald
sumber
1
Kupikir begitu, tapi itu patut dicoba
Smudge
12
Yah itu menyedihkan.
Rob
1

Anda dapat melakukannya dengan cara lain, dengan menggunakan direktori vhost dinamis.
sebagai contoh:

server {
...
    server_name ~^(www\.)?(?<domain>.+)$;
...
    location /global/ {
        root /my/global/location/;
    }
...
moddie
sumber