Saldo de carga HTTP com base em uma porcentagem de tráfego ou solicitações?

3

Eu quero ter o v1 do meu aplicativo em um pool e a versão v1.1 em outro pool e, em seguida, aumentar lentamente o tráfego para o pool dois e reduzi-lo para o pool um.

Alguém pode mostrar alguns exemplos concretos de fazer isso com HA Proxy, Varnish, Nginx ou outra coisa?

    
por markba 01.05.2012 / 17:54

1 resposta

4

O módulo clientes divididos foi projetado especificamente para isso:

# I like starting my upstream names with _
# so they're not confused with hostnames
upstream _old_upstream {
  server 127.0.0.1:1234;
}

upstream _new_upstream {
  server 127.0.0.1:4321;
}

# Make sure the values here match the names of the upstream blocks above
split_clients $remote_addr $split_upstream {
   10% _new_upstream;
   -   _old_upstream;
}

server {
  location / {
    # EDIT: I forgot, when using variables in a proxy_pass, you have to
    # specify the entire request
    proxy_pass http://$split_upstream$request_uri;
  }
}

Em seguida, como você deseja mover mais tráfego para o novo servidor, basta alterar a porcentagem e executar nginx -s reload .

    
por 01.05.2012 / 18:28