Re: mirror только *_pass
Илья Шипицин
chipitsine на gmail.com
Ср Окт 3 08:23:46 UTC 2018
ср, 3 окт. 2018 г. в 12: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
> бы также работал. Непонятно что можно в этом случае писать в лог, если
> запрос просто завершается на более ранней стадии.
>
я наверное, неправильно поступлю. но у меня два вопроса ))
1) мы игрались с mirror - штука годная. но когда мы хотели ее подебажить,
мы добавили access_log, в него ничего не записалось. мы включили снифер -
запросы увидели. не совсем понятно, лог можно указать, с точки зрения nginx
директива access_log в локейшене миррора не является ошибкой. но не
логирует. надо доки читать. оченьсложна
2) вот допустим, у меня точка, на которую я делаю зеркалирование -
тормозная. то соединения не устанавливаются, то запросы подтупливают... не
будет ли это приводить к деградации воркера ?
>
> В 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/3d5bfb89/attachment-0001.html>
Подробная информация о списке рассылки nginx-ru