В Unix я обычно развертываю nginx перед Varnish перед сервером приложений. И nginx, и Varnish действуют здесь как обратные прокси. Varnish поддерживает кэш и поддерживает такие вещи, как If-Modified-Since, заголовки ответа Cache-Control и запросы PURGE из приложения. nginx хорош в получении большого количества соединений. Я также использую его для показа некоторого статического содержимого, включения сжатия gzip и т. Д.
В Windows я могу управлять с помощью Squid перед IIS. Я планирую развернуть мое (Python) приложение как фильтр подстановочных знаков ISAPI (используя пакет isapi-wsgi), поэтому приложение будет жить в пуле потоков, управляемом IIS.
Однако разработка Squid в Windows, похоже, застопорилась, и я бы предпочел оставить IIS на порте 80, чтобы я мог обслуживать определенные вещи прямо с диска. Я также подозреваю, что IIS более устойчив в обработке большого количества соединений, чем Squid в Windows.
Что люди обычно используют здесь? Один из вариантов - использовать другой автономный прокси-сервер кэширования перед IIS. Другой вариант может быть чем-то установленным в качестве фильтра ISAPI, который будет перехватывать запросы и отвечать на такие вещи, как If-Modified-Since, запросы на изображения и другие кэшированные ресурсы, а также запросы PURGE из приложения.
Существует ли такая вещь? Или единственные реальные варианты Squid и MS ISA (слишком дорого).
Cheers,
Martin