Ubicación 'global' de NGINX

9

¿Es posible crear una ubicación 'global' para un servidor NGINX? Me gustaría que cada sitio servido por NGINX tenga acceso a una carpeta / global /; en la línea 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...]
    }
}

Y poder acceder a archivos en la ubicación global desde http://example.com/global/ http://example.org/global/ etc.

Puedo hacer esto si agrego el bloque de ubicación global a cada serverbloque, pero eso es molesto, me gustaría tenerlo definido globalmente y poder acceder desde dentro de los sitios.

Podría usar una includedirectiva en cada host, pero aún requiere especificación en cada host. El wiki de NGINX dice que el bloque de 'ubicación' solo es válido dentro del servercontexto, pero no sabía si había un truco de reescritura o algo similar.

Mancha
fuente
¿Algún avance en esto? ~ 4 años después?
w00t

Respuestas:

3

No es no y, que yo sepa, tampoco se habla de cambiar eso.

Martin Fjordvald
fuente
1
Pensé que sí, pero valió la pena intentarlo
Smudge
12
Bueno, eso es deprimente.
Rob
1

Puede hacerlo al revés, utilizando directorios dinámicos de vhost.
por ejemplo:

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