É possível fazer o aplicativo de balanceamento de carga nginx e servidores de cache em “paralelo”?

2

Acabei de ler este artigo da Digital Ocean e queria saber se a topologia no exemplo final pode ser implementada com nginx.

Estou interessado em como o balanceador de carga lida com os dois servidores de cache dedicados que NÃO estão na frente dos servidores de aplicativos . Eles descrevem o processo assim:

  1. O balanceador de carga verifica o cache-backend para ver se o conteúdo solicitado está em cache (acertado pelo cache) ou não (cache-miss)
  2. Se o cache acertar: retorne o conteúdo solicitado para o balanceador de carga e salte para a Etapa 7. Se o cache falhar: o servidor de cache encaminhará a solicitação para o backend do aplicativo, por meio do balanceador de carga
  3. O balanceador de carga encaminha a solicitação ao app-backend
  4. o app-backend lê o banco de dados e retorna o conteúdo solicitado para o balanceador de carga
  5. O balanceador de carga encaminha a resposta ao cache-backend
  6. o cache-backend armazena o conteúdo e o retorna ao balanceador de carga
  7. O balanceador de carga retorna os dados solicitados ao usuário

Eu acho que o balanceador de carga deve ter os dois grupos nas diretivas upstream:

upstream cachebackend {
    server cache-1.example.com;
    server cache-2.example.com;
}

upstream appbackend {
    server app-1.example.com;
    server app-2.example.com;
}

e depois de dentro de uma diretiva de servidor:

location / {
    proxy_pass http://cachebackend;

    # if that one is a MISS, request this one:
    # proxy_pass http://appbackend;
    # and then save the response on the cachebackend
    # before returning it to the client
}

Eu quero saber como dizer ao nginx para seguir os passos acima, ou se é possível.

Obrigado :)

    
por Denholm Reynholm 23.09.2015 / 19:30

1 resposta

1

O Nginx pode fazer o balanceamento de carga e o cache simultaneamente, basta configurar a zona do cache usando a diretiva proxy_cache_path e atribuí-la ao server {} ou location {} usando proxy_cache . Assim, concluindo, se estiver usando nginx como balanceador de carga e cache, a arquitetura da Digital Ocean parece muito redundante.

    
por 23.09.2015 / 19:39