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.


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.


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/;
    }
...
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.