网站性能优化,一般可以从以下几个方面入手:
1、页面优化
2、Gzip压缩
3、图像处理
4、忽略参数
5、CDN优化
1、页面优化
开启页面优化功能,CDN会自动删除页面的冗余内容,例如HTML页面、内嵌JavaScript和CSS中的注释以及重复的空白符,可以有效去除页面的冗余信息,缩小文件体积,提高加速分发效率,同时也可以提升页面的可阅读性。
注意事项
如果源站文件配置了MD5校验机制,请不要开启页面优化功能。
开启页面优化功能,CDN进行页面优化时,会改变文件的MD5值,导致优化后文件的MD5值和源站文件的MD5值不一致。
如果源站开启了Gzip压缩或Brotli压缩,CDN的页面优化功能将会失效,CDN会将源站压缩后的文件透传给客户端。
在不关闭源站的Gzip或Brotli压缩的情况下,如果想使用CDN的页面优化功能,您可以在CDN的回源HTTP头中进行配置,删除Accept-Encoding头。CDN回源删除Accept-Encoding后,CDN页面优化功能即可正常执行。删除Accept-Encoding头,请参见配置回源HTTP请求头。
如果您同时开启了页面优化和压缩功能(Gzip压缩或者Brotli压缩),页面优化功能将会失效,CDN只会对文件进行压缩。
在某些特殊情况下,开启页面优化功能,改写网站页面中的HTML文件、CSS文件、JS文件可能会影响到网站的业务逻辑,客户端访问改写以后的网站页面可能会出现类似Hydration completed but contains mismatches. 这样的报错,这个时候关闭页面优化功能即可解决问题。
操作步骤
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击性能优化。
在页面优化区域框中,您可以选择开启HTML优化、CSS优化或JavaScript优化。
2、Gzip压缩
开启Gzip压缩功能后,CDN节点会对资源进行Gzip压缩后返回,缩小传输文件大小,提升文件传输效率,减少带宽消耗。
背景信息
压缩分为Gzip压缩和Brotli压缩,Gzip压缩功能使用的是Gzip压缩算法,Brotli压缩详情请参见Brotli压缩。
当源站文件的大小在1 KB~10 MB及之间时,才可以使用Gzip压缩或Brotli压缩,对1 KB以下和10 MB以上大小的文件不做压缩。
Gzip压缩支持的文件类型有text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss+xml、text/javascript、image/tiff、image/svg+xml、application/json、application/xml。
客户端请求携带请求头Accept-Encoding: gzip:客户端希望获取对应资源时进行Gzip压缩。
服务端响应携带响应头Content-Encoding: gzip:服务端响应的内容为Gzip压缩的资源。
注意事项
Gzip压缩兼容所有浏览器,Brotli压缩不兼容较老版本的浏览器,您可以根据业务需要查询浏览器的兼容情况。
CDN对静态文件进行压缩时,会改变文件的MD5值,如果客户网站的业务逻辑里面有使用文件MD5校验(即客户端需要校验从CDN节点上拿到的文件的MD5值,如果文件校验的MD5值与响应头里面记录的MD5值不一致,则说明文件下载失败),请关闭Gzip压缩和Brotli压缩功能。
源站开启了压缩功能,且服务端响应中携带了响应头Content-Encoding,则CDN的压缩功能将不再生效。
同时开启Gzip压缩和Brotli压缩,且客户端请求头Accept-Encoding同时携带br和gzip时,仅Brotli压缩生效。
如果您同时开启了页面优化和压缩功能(Gzip压缩或者Brotli压缩),页面优化功能将会失效,CDN只会对文件进行压缩。
常见的图片文件类型(PNG、JPG、JPEG等)和视频文件类型(MP4、AVI、WMV等)已经做了内容的压缩处理,开启Gzip压缩或者Brotli压缩没有效果,建议您关闭Gzip压缩或者Brotli压缩功能。如果您需要进一步降低图片文件的体积可以使用图像处理功能;如果您需要进一步降低视频文件的体积可以使用视频转码功能。
操作步骤
登录CDN控制台。
在左侧导航栏,单击域名管理。
在域名管理页面,找到目标域名,单击操作列的管理。
在指定域名的左侧导航栏,单击性能优化。
在Gzip压缩区域框中,打开Gzip压缩开关,完成配置。
成功开启Gzip压缩功能后,您可以对比查看原始请求收到的文件类型和开启Gzip压缩之后收到的文件类型,如果收到.gzip后缀的文件,说明文件已经被压缩了。
3、图片处理
在一些内容分享网站,一张原始图片可能会根据业务的需要被缩放、裁剪、旋转、压缩等,若每次处理都需要回源,则会增加回源次数及CDN节点缓存。阿里云CDN提供图像处理功能,可直接在CDN的L2节点对图片进行处理,同时缓存处理后的图片,能够有效提升内容返回速度,减轻源站压力,减少回源流量等。
4、忽略参数
开启忽略参数功能后,CDN节点在处理用户请求时,会去除请求URL中携带在?之后的参数(例如:用户身份信息、访问渠道信息),以原始URL来生成缓存hashkey。
5、CDN优化
参见CDN优化相关文章。