mirror только *_pass

Alexander Azarov self на alaz.me
Ср Окт 3 05:10:13 UTC 2018


Здравствуйте!

У меня вопрос про mirror. Он у меня срабатывает, только если в локейшне
есть proxy_pass. Если там rewrite..redirect или return, то подзапрос не
случается, в логе совсем пусто (даже в debug логе). Так и должно быть? Если
да, то может быть имеет смысл что-то в лог писать, а то нелогично как-то
получается, директива в конфиге есть, а действия никакого нет.

Версию 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;

    }

  }

}
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20181003/a10b2452/attachment-0001.html>


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