Re: Как удержать проксирование в пределах поддиректории сайта (proxy redirect не срабатывает) ?
    Maxim Dounin 
    mdounin at mdounin.ru
       
    Tue Dec  3 13:00:32 UTC 2013
    
    
  
Hello!
On Tue, Dec 03, 2013 at 07:09:40AM -0500, Dmitriy_K wrote:
> Здесь в конференции неоднократно поднималась проблема перескока
> проксирования за пределы location, в которой оно производится: 
> http://forum.nginx.org/read.php?21,240642,240642#msg-240642
> http://forum.nginx.org/read.php?11,239231,239231#msg-239231
> http://forum.nginx.org/read.php?21,242647,242671#msg-242671
> 
> Просьба к светочам нашей жизни внести ясность по данному поводу.
> Возможно, можно что-то придумать с корректировкой заголовков (через
> subs_filter?) или с реврайтами.
> Пожалуйста, помогите разобраться!
В общем случае - если бекенд не знает, по какому адресу на себя 
ссылаться, и при этом ссылается - то проксирование невозможно.  
Пример: бекенд возвращает swf и/или любой другой бинарный файл 
неизвестной структуры, в котором зашит неправильный адрес.
В более частных случаях - работают решения, предусматривающие 
минимальное вмешательство в ответы бекенда, такие как 
proxy_redirect (+ proxy_cookie_*).  В этом случае ответ меняется 
на уровне заголовков.
Если в вашем случае proxy_redirect не хватает, то можно пытаться 
ходить в сторону замены адресов в возвращаемом ответе (sub_filter 
и т.п.).  Но единственное гарантированно работающее решение - 
пойти на бекенд и объяснить ему, как на себя следует ссылаться.  
Я лично крайне не рекомендую пытаться делать замены в ответах.  
Либо надо сводить задачу к решаемой с помощью замен в заголовках 
(обычно для этого бывает достаточно отказаться от изменения пути  
при проксировании - либо использовав отдельный домен, либо 
использовав нужный префикс на бекенде), либо объяснять бекенду, 
как правильно на себя ссылаться.
[...]
-- 
Maxim Dounin
http://nginx.org/en/donation.html
    
    
Подробная информация о списке рассылки nginx-ru