Я внес некоторые изменения в web.config
сервера под управлением IIS 7.5 улучшают производительность (в основном интерфейсную).
Сторонний инструмент тестирования сообщает, что на сайте работает «PHP / 5.3.10, ASP.NET», и, если не изменяет память, это ASP.NET 4.5.
Я думаю, это из-за странного сочетания технологий (например, запуск PHP на IIS), но прикосновение к чему-либо заставляет меня нервничать.
Я добавил (только) директивы для заголовков expires и gzip из Конфигурация сервера H5BP IIS
Думаю, я добавил эти директивы днем 15 января 2013 года. История тестирования сайта с помощью инструмента тестирования производительности Pingdom: доступна здесь.
Видно, где резко падает размер перевода (кликните по вкладке истории).
С тех пор кажется, что каждый раз, когда я его тестирую, разные файлы (обычно такие ресурсы, как CSS и JS) обслуживаются или не обслуживаются с помощью gzip без каких-либо рифм или причин. Иногда кажется, что все обслуживается с помощью gzip, иногда почти ничего не обслуживается сжатым, но обычно это где-то посередине (как вы можете видеть в истории).
Что происходит?
Как я могу это исправить?
Этот сайт не находится в активной разработке, хотя на страницу были добавлены некоторые дополнительные данные (скрипты плагинов Google Analytics, которые я добавил для улучшения отслеживания) после 15 числа, нет ничего, что могло бы объяснить такие большие различия и несоответствия.
Я предполагаю, что это связано с ресурсами процессора для сжатия, и этот вопрос кажется близким: Почему эффективность сжатия gzip в IIS разная?
Я нашел вероятного виновника в комментариях к этой странице; weblog.west-wind.com
По сути, OOTB, IIS будет выполнять сжатие только в том случае, если файл будет запрошен как минимум дважды за 10 секунд.
Это настраивается через web.config - к сожалению, он заблокирован по умолчанию, поэтому вам нужно отредактировать applicationhost.config, чтобы изменить overrideModeDefault = "DENY" на ALLOW.
Ссылка на это здесь: форумы.iis.net
Соответствующие фрагменты конфигурации следующие. Вы увидите, что я также возился с типом содержимого для шрифтов SVG, поскольку по умолчанию IIS не будет их архивировать, поэтому, заставляя их использовать text / xml, они тоже сжимаются. (Google PageSpeed жалуется на это)
web.config
<system.webServer>
<serverRuntime frequentHitThreshold="1" enabled="true" />
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="text/xml" />
</staticContent>
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<dynamicTypes>
<add mimeType="*/*" enabled="true" />
</dynamicTypes>
<staticTypes>
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="text/xml" enabled="true" />
<add mimeType="*/*" enabled="true" />
</staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>
</system.webServer>
applicationHost.config
<section name="serverRuntime" overrideModeDefault="Allow" />