Emplacement «mondial» de NGINX

9

Est-il possible de créer un emplacement «global» pour un serveur NGINX? J'aimerais que chaque site servi par NGINX ait accès à un dossier / global /; le long des lignes de

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...]
    }
}

Et être en mesure d'accéder aux fichiers dans l'emplacement global à partir de http://example.com/global/ http://example.org/global/ etc.

Je peux le faire si j'ajoute le bloc d'emplacement global à chaque serverbloc mais c'est ennuyeux, j'aimerais le définir globalement et pouvoir y accéder depuis les sites.

Je pourrais utiliser une includedirective dans chaque hôte, mais elle nécessite toujours des spécifications dans chaque hôte. Le wiki NGINX dit que le bloc 'location' n'est valide que dans le servercontexte mais je ne savais pas s'il y avait une astuce de réécriture ou quelque chose de similaire.

Tache
la source
Une mise à jour pour ceci? ~ 4 ans plus tard?
w00t

Réponses:

3

Ce n'est pas non et pour autant que je sache, il n'est pas question non plus de changer cela.

Martin Fjordvald
la source
1
Je le pensais, mais ça valait le coup d'essayer
Smudge
12
Eh bien, c'est déprimant.
Rob
1

Vous pouvez en quelque sorte le faire dans l'autre sens, en utilisant des répertoires vhost dynamiques.
par exemple:

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