Como implementar o espelhamento parcial no nginx?

1

Eu quero testar uma nova versão inicial de um servidor e, para isso, quero espelhar parte das solicitações reais que chegam ao servidor de produção no meu servidor de teste.

O módulo espelho me permite espelhar all o tráfego, mas não encontrei como realizar o espelhamento parcial das solicitações, por exemplo, quero espelhar 30% do tráfego.

Isso é possível? Se sim, como?

    
por smellyarmpits 27.11.2018 / 09:54

1 resposta

0

Se você tem dois servidores web e deseja enviar 30% dos pedidos para o servidor A e 70% dos pedidos para o servidor B , você pode colocar uma carga balanceador na frente dos dois servidores web. Você precisa colocar um balanceador de carga na frente dos dois servidores da Web, caso contrário, todo o tráfego só irá para um servidor ou outro.

Usando pesos, você pode especificar quanto tráfego deve ir para o primeiro ou o segundo servidor. Um exemplo simples é dado abaixo:

http {
  upstream myapp1 {
    server srv1.example.com weight=3;
    server srv2.example.com weight=7;
  }
  server {
    listen 80;
    location / {
      proxy_pass http://myapp1;
    }
  }
}

EDITAR: Com ambos os servidores sendo o servidor de produção, você pode usar o módulo mirror em srv1.example.com para enviar 30% do tráfego para o seu teste servidor. De acordo, isso é um pouco sujo, então sinta-se livre para votar quando melhores soluções forem dadas.

    
por 27.11.2018 / 11:33