Какое программное обеспечение можно использовать для настройки обратного прокси-сервера, который отправляет файлы во время кэширования?

Какое программное обеспечение можно использовать для настройки обратного прокси-сервера, который отправляет файлы во время кэширования?

Мне нужно настроить обратный HTTP-прокси, который сможет кэшировать запросы к вышестоящему серверу.

Вышестоящий сервер обслуживает только статические файлы.

Проблема, с которой я сталкиваюсь, заключается в том, что мне нужен прокси, способный начать первый байт как можно скорее (он не может ждать, пока весь запрос будет буферизирован), продолжая кэширование. Это связано с тем, что мои файлы могут быть довольно большими (несколько сотен мегабайт), но требованием приложения является быстрое время отклика.

Я пробовал использовать nginx, но когда я отключаю proxy_buffering, кэширование вообще прекращается.

Есть ли какой-нибудь широкодоступный, хорошо протестированный проект с открытым исходным кодом, который может это сделать? Varnish? Squid? HAProxy?

решение1

Лак подойдет для этой работы:

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
    }

    # ...

}

решение2

Вы можете настроить два сервера nginx: один с включенным proxy_buffering, а второй будет кэшировать ответы от вышестоящего сервера.

Связанный контент