Фильтрация error_log для локейшна.

Panichev Oleg panichev на segmento.ru
Пн Май 14 14:16:34 UTC 2018


Добрый день,

У нас есть задача часть трафика отправлять на тестовый стенд. Решили 
этот вопрос таким образом

  split_clients "${shard_key}" $test_or_204 {
     5%  test;
     *   mirror_204;
   }

   upstream test {
     server test:1234;
   }

   location /original {
   ...

   mirror /mirror
    ...
   }


   location /mirror {

  if ( $test_or_204 = "mirror_204" ) {
         return 204;
       }

       fastcgi_pass $test_or_204;
   }

  Это решение работает прекрасно за исключением того момента, что когда 
выключается upstream,на который мы шлем часть тестового трафа, error_log 
оригинального локейшена /orig сразу заполняется ошибками вида

  2018/04/26 09:37:15 [error] 24047#0: *395993 connect() failed (111: 
Connection refused) while connecting to upstream, client: x.x.x.x, 
server: xxxx.ru, request: "GET / HTTP/1.1", subrequest: "/mirror", 
upstream: "fastcgi://127.0.0.1:1234", host: "xxxx"

  Можно как-то избавиться от этих сообщений?


С уважением, Олег




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