porta microsoft how app azure gzip azure-web-sites http-caching http-compression

microsoft - porta azure



La aplicaciĆ³n web Azure no utiliza la compresiĆ³n GZip (2)

Estaba usando WebPageTest para probar el rendimiento de mi aplicación web Azure (ASP.Net vNext Web API / Angular). Obtuve una F tanto para "Transferencia de compresiones" como para "Contenido estático de caché".

Después de buscar StackOverflow y Google, agregué lo siguiente a mi web.config:

<urlCompression doStaticCompression="true" doDynamicCompression="true" /> <httpCompression> <dynamicTypes> <clear /> <remove mimeType="*/*" /> <add enabled="true" mimeType="text/*"/> <add enabled="true" mimeType="message/*"/> <add enabled="true" mimeType="application/x-javascript"/> <add enabled="true" mimeType="application/javascript"/> <add enabled="true" mimeType="application/json"/> <add enabled="false" mimeType="*/*"/> <add enabled="true" mimeType="application/atom+xml"/> <add enabled="true" mimeType="application/atom+xml;charset=utf-8"/> </dynamicTypes> <staticTypes> <clear /> <remove mimeType="*/*" /> <add enabled="true" mimeType="text/*"/> <add enabled="true" mimeType="message/*"/> <add enabled="true" mimeType="application/javascript"/> <add enabled="true" mimeType="application/atom+xml"/> <add enabled="true" mimeType="application/xaml+xml"/> <add enabled="true" mimeType="application/json"/> <add enabled="false" mimeType="*/*"/> </staticTypes> </httpCompression>

y

<staticContent> <!-- Set expire headers to 30 days for static content--> <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" /> </staticContent>

Después de volver a implementar mi aplicación web, volví a ejecutar la prueba y sigo obteniendo una F para ambos. Aunque he agregado estas configuraciones a web.config, no parece que Azure Web App las esté respetando.

Además, descubrí que algunos niveles de la aplicación web no permiten la compresión, pero me estoy ejecutando en un S2 y verifiqué que no permite la compresión.

¡Cualquier ayuda sería apreciada!

¡Gracias!


La compresión gzip está habilitada de forma predeterminada para Azure Web Apps. Puede ver las reglas en sus sitios LocalSiteRoot / Config / applicationhost.config. Al mirar los encabezados de respuesta (lo cual se puede hacer fácilmente con las herramientas de desarrollador) se debe confirmar que se está usando gzip. Es posible que uno de los recursos que carga su sitio no esté comprimido, y esto está causando que el WebPageTest falle. Me gustaría ver una captura de red y los encabezados de respuesta, y ver si puede encontrar los recursos ofensivos si está preocupado.

Para ir a la raíz del sitio local, puede usar FTP o ir a su sitio de SCM en https: //.scm.azurewebsites.net/DebugConsole y luego hacer clic en el icono de globo.

También sospecho que sus 2 archivos javascript no se comprimen, ya que el encabezado Content-Type no se está llenando, por lo que la regla no lo está capturando porque no reconoce el tipo mimetype.


Solo para respaldar @theadriangreen aquí, será un problema de encabezado. He encontrado que agregar los tipos en el web.config no es confiable.

Lo que debe hacer en su lugar es editar el archivo applicationHost.config almacenado en la parte más oscura de Azure. La forma más fácil de hacerlo es instalar la extensión del Administrador de IIS en el portal de Azure o en Kudu. Se puede acceder a Kudu a través de .scm.azurewebsites.net.

Allí puede editar el archivo, y guardará un xdt para usted, que una vez que reinicie la aplicación, encontrará que se aplica el xdt.

Alternativamente, puede agregar un applicationHost.xdt a su raíz de la aplicación y listo. Aquí hay una muestra.

<?xml version="1.0" encoding="utf-8"?> <configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <system.webServer> <httpCompression> <dynamicTypes> <add mimeType="application/json;charset=utf-8" enabled="true" xdt:Transform="InsertAfter(/configuration/system.webServer/httpCompression/dynamicTypes/add[(@mimeType=''application/json'')])" /> </dynamicTypes> </httpCompression> </system.webServer> </configuration>

Referencias: