ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Как удержать проксирование в пределах поддиректории сайта (proxy redirect не срабатывает) ?



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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.