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