Qual software eu poderia usar para configurar o proxy reverso que envia arquivos durante o armazenamento em cache?

Qual software eu poderia usar para configurar o proxy reverso que envia arquivos durante o armazenamento em cache?

Preciso configurar um proxy reverso HTTP que seja capaz de armazenar solicitações em cache para o servidor upstream.

O servidor upstream serve apenas arquivos estáticos.

O problema que estou enfrentando é que preciso de um proxy que seja capaz de iniciar o primeiro byte o mais rápido possível (ele não pode esperar que toda a solicitação seja armazenada em buffer) enquanto ainda armazena em cache. Isso ocorre porque meus arquivos podem ser muito grandes (algumas centenas de megabytes), mas o requisito do aplicativo é ter tempos de resposta rápidos.

Tentei usar o nginx, mas quando desativo o proxy_buffering, ele para de armazenar em cache.

Existe algum projeto de código aberto bem testado e amplamente disponível que possa fazer isso? Verniz? Lula? HAProxy?

Responder1

O verniz será bom para o trabalho:

sub vcl_backend_response {

    # ... 

    # Large static files are delivered directly to the end-user without
    # waiting for Varnish to fully read the file first.
    # Varnish 4 fully supports Streaming, so use streaming here to avoid locking.
    if (bereq.url ~ "^[^?]*\.(mp[34]|rar|rpm|tar|tgz|gz|wav|zip|bz2|xz|7z|avi|mov|ogm|mpe?g|mk[av]|webm)(\?.*)?$") {
        unset beresp.http.set-cookie;
        set beresp.do_stream = true;  
        set beresp.do_gzip = false;   # Don't try to compress it for storage
    }

    # ...

}

Responder2

Você pode configurar dois servidores nginx, um com proxy_buffering habilitado e o próximo que armazenará em cache as respostas do upstream.

informação relacionada