jkr*_*r01 4 gzip http-compression azure http-caching azure-web-sites
我使用WebPageTest来测试Azure Web App的性能(ASP.Net vNext Web API/Angular).我得到了"压缩传输"和"缓存静态内容"的F.
在搜索StackOverflow和Google之后,我在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>
Run Code Online (Sandbox Code Playgroud)
和
<staticContent>
<!-- Set expire headers to 30 days for static content-->
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
重新部署我的Web应用程序后,我重新运行测试,我仍然为它们获得了一个F. 即使我已将这些设置添加到web.config,但Azure Web App似乎并不尊重它们.
此外,我发现一些Web应用程序层不允许压缩,但我在S2上运行,我验证它确实允许压缩.
任何帮助,将不胜感激!
谢谢!
the*_*een 13
Azure Web Apps默认启用gzip压缩.您可以在站点LocalSiteRoot/Config/applicationhost.config中查看规则.查看响应标头(可以使用开发人员工具轻松完成)应确认正在使用gzip.您的网站加载的资源之一可能未被压缩,这导致WebPageTest失败.我会查看网络捕获和响应标头,如果您担心,可以查看是否可以找到有问题的资源.
要转到本地站点根目录,您可以使用FTP,或者访问您的SCM站点https://.scm.azurewebsites.net/DebugConsole,然后单击地球图标.

此外,我怀疑你的2个javascript文件没有被压缩,因为Content-Type标头没有被填充,所以规则没有捕获它,因为它无法识别mimetype.
只是为了备份@theadriangreen - 这将是一个标题问题.我发现在web.config中添加类型是不可靠的.
你需要做的是编辑存储在azure最黑暗部分的applicationHost.config文件.最简单的方法是在Azure门户或Kudu中安装IIS管理器扩展.可以通过.scm.azurewebsites.net访问Kudu.
在那里你可以编辑文件,它会为你保存一个xdt - 一旦你重新启动应用程序,你会发现xdt被应用了.
或者,您只需将applicationHost.xdt添加到App根目录即可.这是一个例子.
<?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>
Run Code Online (Sandbox Code Playgroud)
参考文献: -
| 归档时间: |
|
| 查看次数: |
6762 次 |
| 最近记录: |