NGINX "глобальное" местоположение

9

Можно ли создать «глобальное» местоположение для сервера NGINX? Я бы хотел, чтобы каждый сайт, обслуживаемый NGINX, имел доступ к папке / global /; по линии

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

И иметь возможность доступа к файлам в глобальном местоположении с http://example.com/global/ http://example.org/global/ и т. Д.

Я могу сделать это, если добавлю глобальный блок местоположения в каждый serverблок, но это раздражает, я бы хотел, чтобы он был определен глобально и имел доступ к нему из сайтов.

Я мог бы использовать includeдирективу на каждом хосте, но она все еще требует спецификации на каждом хосте. Вики NGINX говорит, что блок 'location' действителен только в serverконтексте, но я не знал, был ли трюк с переписыванием или что-то подобное.

мазаться
источник
какое-нибудь обновление по этому поводу? ~ 4 года спустя?
17:00

Ответы:

3

Это не так, и, насколько я знаю, нет никаких разговоров об их изменении.

Мартин Фьордвальд
источник
1
Думал так, но это стоило попробовать
Smudge
12
Ну, это угнетающе.
Роб
1

Вы можете сделать это наоборот, используя динамические каталоги vhost.
например:

server {
...
    server_name ~^(www\.)?(?<domain>.+)$;
...
    location /global/ {
        root /my/global/location/;
    }
...
moddie
источник