IIS кеш с поддержкой PURGE - PullRequest
       11

IIS кеш с поддержкой PURGE

1 голос
/ 21 сентября 2009

В 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

1 Ответ

0 голосов
/ 31 августа 2012

IIS7 с маршрутизацией запросов приложений (см. http://www.iis.net/download/ApplicationRequestRouting) поддерживает полное кэширование прокси на том же компьютере или на сервере кэширования перед вашим средним уровнем.

После установки ARR, чтобы включить кэширование прокси из командной строки, выполните следующее:

%windir%\System32\inetsrv\appcmd.exe set config  -section:system.webServer/diskCache /+"[path='C:\MyCacheFolder',maxUsage='0']" /commit:apphost

Чтобы изменить кэширование на основе строки запроса, выполните следующее:

%windir%\System32\inetsrv\appcmd.exe set config  -section:system.webServer/proxy /cache.queryStringHandling:"Accept"  /commit:apphost 

См. Ссылку на документацию выше для более подробной информации. Обратите внимание, что у статического и динамического контента могут быть разные стратегии кэширования и т. Д. Если вы продолжаете использовать это, задавайте конкретные вопросы - это может быть небольшим уловкой, выстраивающей все воедино, если вы ищете детальный контроль.

...