Transparent file substitution

Maxim Dounin mdounin at mdounin.ru
Tue Sep 2 14:34:19 UTC 2014


Hello!

On Tue, Sep 02, 2014 at 05:20:00PM +0300, Андрей Середенко wrote:

[...]

> Можно ли сделать нечто подобное *без перенаправлений* ?
> Что пробовалось: положить файл в папку статики по пути, аналогичным
> location и с тем же именем, и поменять $document_root в блоке if'a, но: из
> if'a тоже надо как-то выходить - break не годится (обработка пойдет дальше
> по локейшену и в результате - запрос будет проксирован), return не годится
> (клиент не понимает редиректов), rewrite... а смысл? все равно в итоге
> return new location.

Вам нужно по условию сделать внутреннее перенаправление, как-то 
так:

    location = /some/app/url/messenger.asmx {
        if (...) {
            rewrite ^ /some/app/url/static/messengerwsdl.xml last;
        }

        proxy_pass ...
    }

    location = /some/app/url/static/messengerwsdl.xml {
        # static file
    }

В результате клиенту на исходный запрос будет возвращён 
статический файл, обычно доступный по заданному адресу.

Подробнее тут:

http://nginx.org/r/rewrite

[...]

> #$ nginx -V
> nginx version: nginx/1.0.15

Антиквариат, однако.

-- 
Maxim Dounin
http://nginx.org/



Подробная информация о списке рассылки nginx-ru