<div dir="ltr">Здравствуйте, Роман!<div><br></div><div>Понятно, спасибо за объяснение и за ссылку.</div><div><br></div><div>Я не могу подсказать что писать в лог, да и что вообще с этим делать. Но получается, что админу Nginx надо знать про фазы обработки запроса, чтобы смочь себе объяснить, почему директива в конфиге не приводит вообще ни к чему.</div><div><br></div><div>С уважением,<br>Александр</div></div><br><div class="gmail_quote"><div dir="ltr">ср, 3 окт. 2018 г. в 10:11, Roman Arutyunyan <<a href="mailto:arut@nginx.com">arut@nginx.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Добрый день, Александр.<br>
<br>
On Wed, Oct 03, 2018 at 08:10:13AM +0300, Alexander Azarov wrote:<br>
> Здравствуйте!<br>
> <br>
> У меня вопрос про mirror. Он у меня срабатывает, только если в локейшне<br>
> есть proxy_pass. Если там rewrite..redirect или return, то подзапрос не<br>
> случается, в логе совсем пусто (даже в debug логе). Так и должно быть? Если<br>
> да, то может быть имеет смысл что-то в лог писать, а то нелогично как-то<br>
> получается, директива в конфиге есть, а действия никакого нет.<br>
<br>
Миррор создается в фазе precontent, а rewrite и return - на более ранней фазе<br>
rewrite.  В вашем случае запрос завершается в фазе rewite и не доходит до<br>
фазы precontent, в которой создается mirror.  Дело тут не в proxy_pass, а<br>
в rewrite/return.  Если бы в локейшене просто отдавалась статика, то mirror<br>
бы также работал.  Непонятно что можно в этом случае писать в лог, если<br>
запрос просто завершается на более ранней стадии.<br>
<br>
В nginx devguide есть глава про фазы:<br>
<br>
<a href="http://nginx.org/en/docs/dev/development_guide.html#http_phases" rel="noreferrer" target="_blank">http://nginx.org/en/docs/dev/development_guide.html#http_phases</a><br>
<br>
> Версию nginx и конфиг прикладываю ниже.<br>
> <br>
> С уважением,<br>
> Александр<br>
> <br>
> nginx version: nginx/1.15.4<br>
> <br>
> configure arguments: --prefix=/opt/local<br>
> --with-cc-opt='-I/opt/local/include -Os' --with-ld-opt='-L/opt/local/lib<br>
> -Wl,-headerpad_max_install_names'<br>
> --conf-path=/opt/local/etc/nginx/nginx.conf<br>
> --error-log-path=/opt/local/var/log/nginx/error.log<br>
> --http-log-path=/opt/local/var/log/nginx/access.log<br>
> --pid-path=/opt/local/var/run/nginx/nginx.pid<br>
> --lock-path=/opt/local/var/run/nginx/nginx.lock<br>
> --http-client-body-temp-path=/opt/local/var/run/nginx/client_body_temp<br>
> --http-proxy-temp-path=/opt/local/var/run/nginx/proxy_temp<br>
> --http-fastcgi-temp-path=/opt/local/var/run/nginx/fastcgi_temp<br>
> --http-uwsgi-temp-path=/opt/local/var/run/nginx/uwsgi_temp --with-debug<br>
> --with-http_mp4_module --with-stream<br>
> <br>
> http {<br>
> <br>
>   include       mime.types;<br>
> <br>
>   default_type  application/octet-stream;<br>
> <br>
> <br>
>   log_format stat '[$time_local] $server_port $status "$request" "$uri"';<br>
> <br>
>   log_subrequest on;<br>
> <br>
>   access_log /dev/stdout stat;<br>
> <br>
> <br>
>   server {<br>
> <br>
>     listen 8000 default_server;<br>
> <br>
> <br>
>     location /r {<br>
> <br>
>       mirror /stats;<br>
> <br>
>       return 200 "OK";<br>
> <br>
>     }<br>
> <br>
> <br>
>     location = /stats {<br>
> <br>
>       proxy_pass http://127.0.0.1:8001$uri;<br>
> <br>
>     }<br>
> <br>
>   }<br>
> <br>
> <br>
>   server {<br>
> <br>
>     listen 8001 default_server;<br>
> <br>
> <br>
>     location /o {<br>
> <br>
>       return 200 "OK";<br>
> <br>
>     }<br>
> <br>
> <br>
>     location /stats {<br>
> <br>
>       return 204;<br>
> <br>
>     }<br>
> <br>
>   }<br>
> <br>
> }<br>
<br>
> _______________________________________________<br>
> nginx-ru mailing list<br>
> <a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
> <a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br>
<br>
<br>
-- <br>
Roman Arutyunyan<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></blockquote></div>