É possível fazer com que o aplicativo de balanceamento de carga nginx e os servidores de cache sejam "paralelos"?

É possível fazer com que o aplicativo de balanceamento de carga nginx e os servidores de cache sejam "paralelos"?

Acabei de ler issoArtigo sobre o Oceano Digitale queria saber se otopologiano exemplo final pode ser implementado com nginx.

estou interessadocomo 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 back-end do cache para ver se o conteúdo solicitado está armazenado em cache (cache-hit) ou não (cache-miss)
  2. Se cache-hit: retorne o conteúdo solicitado ao balanceador de carga e vá para a Etapa 7. Se cache-miss: o servidor de cache encaminha a solicitação para o back-end do aplicativo, por meio do balanceador de carga
  3. O balanceador de carga encaminha a solicitação para o backend do aplicativo
  4. app-backend lê do banco de dados e retorna o conteúdo solicitado ao balanceador de carga
  5. O balanceador de carga encaminha a resposta para o cache-backend
  6. cache-backend armazena em cache o conteúdo e o retorna ao balanceador de carga
  7. O balanceador de carga retorna os dados solicitados ao usuário

Acho que o balanceador de carga deveria 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 então 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
}

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

Obrigado :)

Responder1

O Nginx pode fazer balanceamento de carga e cache simultaneamente, você só precisa configurar a zona de cache usando proxy_cache_patha diretiva e atribuí-la ao particular server {}ou location {}usando proxy_cache. Portanto, concluindo, se usar o nginx como balanceador de carga e cache, a arquitetura Digital Ocean parece redundante.

informação relacionada