Re: mirror только *_pass

Alexander Azarov self на alaz.me
Ср Окт 3 07:43:40 UTC 2018


Здравствуйте, Роман!

Понятно, спасибо за объяснение и за ссылку.

Я не могу подсказать что писать в лог, да и что вообще с этим делать. Но
получается, что админу Nginx надо знать про фазы обработки запроса, чтобы
смочь себе объяснить, почему директива в конфиге не приводит вообще ни к
чему.

С уважением,
Александр

ср, 3 окт. 2018 г. в 10:11, Roman Arutyunyan <arut на nginx.com>:

> Добрый день, Александр.
>
> 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
> бы также работал.  Непонятно что можно в этом случае писать в лог, если
> запрос просто завершается на более ранней стадии.
>
> В nginx devguide есть глава про фазы:
>
> http://nginx.org/en/docs/dev/development_guide.html#http_phases
>
> > Версию nginx и конфиг прикладываю ниже.
> >
> > С уважением,
> > Александр
> >
> > nginx version: nginx/1.15.4
> >
> > configure arguments: --prefix=/opt/local
> > --with-cc-opt='-I/opt/local/include -Os' --with-ld-opt='-L/opt/local/lib
> > -Wl,-headerpad_max_install_names'
> > --conf-path=/opt/local/etc/nginx/nginx.conf
> > --error-log-path=/opt/local/var/log/nginx/error.log
> > --http-log-path=/opt/local/var/log/nginx/access.log
> > --pid-path=/opt/local/var/run/nginx/nginx.pid
> > --lock-path=/opt/local/var/run/nginx/nginx.lock
> > --http-client-body-temp-path=/opt/local/var/run/nginx/client_body_temp
> > --http-proxy-temp-path=/opt/local/var/run/nginx/proxy_temp
> > --http-fastcgi-temp-path=/opt/local/var/run/nginx/fastcgi_temp
> > --http-uwsgi-temp-path=/opt/local/var/run/nginx/uwsgi_temp --with-debug
> > --with-http_mp4_module --with-stream
> >
> > http {
> >
> >   include       mime.types;
> >
> >   default_type  application/octet-stream;
> >
> >
> >   log_format stat '[$time_local] $server_port $status "$request" "$uri"';
> >
> >   log_subrequest on;
> >
> >   access_log /dev/stdout stat;
> >
> >
> >   server {
> >
> >     listen 8000 default_server;
> >
> >
> >     location /r {
> >
> >       mirror /stats;
> >
> >       return 200 "OK";
> >
> >     }
> >
> >
> >     location = /stats {
> >
> >       proxy_pass http://127.0.0.1:8001$uri;
> >
> >     }
> >
> >   }
> >
> >
> >   server {
> >
> >     listen 8001 default_server;
> >
> >
> >     location /o {
> >
> >       return 200 "OK";
> >
> >     }
> >
> >
> >     location /stats {
> >
> >       return 204;
> >
> >     }
> >
> >   }
> >
> > }
>
> > _______________________________________________
> > nginx-ru mailing list
> > nginx-ru на nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
> --
> Roman Arutyunyan
> _______________________________________________
> nginx-ru mailing list
> nginx-ru на nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20181003/8a4d488e/attachment.html>


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