Сжатие brotli asp.net core 2.2 не работает на IIS?

Я прочитал в Asp.Net Core 2.2 документацию, сжатие brotli добавлено в 2.2.

я имею app.UseResponseCompression(); а также services.AddResponseCompression(); в моем Startup.cs но когда я попробовал это в моей системе с последним браузером Chrome, я вижу только сжатие gzip в заголовках ответа. Я размещаю свое приложение Asp.Net Core 2.2 на веб-сервере Windows Server 2012 IIS.

Что я должен настроить, чтобы получить рабочее сжатие brotli?

2 ответа

Если вы пользуетесь хостингом в IIS, это означает, что IIS - это веб-сервер, взаимодействующий с браузером. Он находится перед вашим приложением ASP.NET Core и проксирует все запросы и ответы, и по умолчанию он не поддерживает Brotli.

Вам необходимо настроить сжатие ответов с IIS. Для добавления поддержки Brotli и Zlib доступно расширение: https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview

Вы также можете запустить приложение ASP.NET Core без IIS.

Вы упомянули, что ваше приложение размещено в IIS, и в прикрепленной вами ссылке указано

Используйте ПО промежуточного слоя для сжатия ответов, если вы не можете использовать модуль динамического сжатия IIS.

Поэтому, если вы используете IIS, вы можете удалить это промежуточное ПО и использовать готовый модуль сжатия IIS.

Шаги, которые вам необходимо предпринять:

  1. Установите brotli на свой веб-сервер — просто следуйте инструкциям здесь https://docs.microsoft.com/en-us/iis/extensions/iis-compression/iis-compression-overview#installing-iis-compression%5D
  2. Удалить промежуточное ПО сжатия
  3. Убедитесь, что в вашем applicationHost.conf существуют
  4. Закомментируйте вариант в applicationHost.confпотому что 98% браузеров поддерживают сжатие и в старой версии IIS gzipвыбирается вместо brotliиз-за порядка в Request Header(например gzip deflate br).
Другие вопросы по тегам