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