Re: mirror только *_pass

Maxim Dounin mdounin на mdounin.ru
Ср Окт 3 12:18:32 UTC 2018


Hello!

On Wed, Oct 03, 2018 at 10:10:58AM +0300, Roman Arutyunyan wrote:

> Добрый день, Александр.
> 
> On Wed, Oct 03, 2018 at 08:10:13AM +0300, Alexander Azarov wrote:
> > Здравствуйте!
> > 
> > У меня вопрос про mirror. Он у меня срабатывает, только если в локейшне
> > есть proxy_pass. Если там rewrite..redirect или return, то подзапрос не
> > случается, в логе совсем пусто (даже в debug логе). Так и должно быть? Если
> > да, то может быть имеет смысл что-то в лог писать, а то нелогично как-то
> > получается, директива в конфиге есть, а действия никакого нет.
> 
> Миррор создается в фазе precontent, а rewrite и return - на более ранней фазе
> rewrite.  В вашем случае запрос завершается в фазе rewite и не доходит до
> фазы precontent, в которой создается mirror.  Дело тут не в proxy_pass, а
> в rewrite/return.  Если бы в локейшене просто отдавалась статика, то mirror
> бы также работал.  Непонятно что можно в этом случае писать в лог, если
> запрос просто завершается на более ранней стадии.

На самом деле, в документации про это тоже есть, в описании 
модуля rewrite:

: Модуль ngx_http_rewrite_module позволяет изменять URI запроса с 
: помощью регулярных выражений PCRE, делать перенаправления и 
: выбирать конфигурацию по условию.

То, что делает rewrite - это выбирает конфигурацию перед 
собственно обработкой запроса.  А mirror - часть этой самой 
выбираемой конфигурации, и зеркалирует собственно обрабатываемые 
запросы.

-- 
Maxim Dounin
http://mdounin.ru/


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