你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通过 Azure 内容分发网络实现动态站点加速
随着社交媒体、电子商务和超个性化 web 的迅速发展,实时生成了提供给最终用户的不断增长的内容。 用户希望获得独立于其浏览器、位置、设备或网络的快速、可靠且个性化的 Web 体验。 然而,使得这些体验极具吸引力的创新却会使页面下载变慢,很可能会影响使用者体验质量。
标准版内容分发网络的功能包括将文件缓存到离最终用户更近的位置,以加快静态文件的分发。 但是,使用动态 web 应用程序无法在边缘位置缓存该内容,因为服务器将生成内容以响应用户行为。 加快此类内容交付比传统边缘缓存更加复杂,需要沿着从开始到交付的整个数据路径微调每个元素的端到端解决方案。 通过 Azure 内容分发网络动态站点加速 (DSA) 优化,具有动态内容的网页的性能将得到显著改善。
在终结点创建期间,Edgio 的 Azure CDN 通过“已针对以下方面进行了优化:”菜单提供 DSA 优化。 Microsoft 的动态站点加速通过 Azure Front Door 提供。
重要
对于 Edgio 的 Azure CDN 的配置文件,你无法在创建内容分发网络终结点后更改其优化设置。
用于加快动态文件的分发的内容分发网络终结点配置
若要配置内容分发网络终结点以优化动态文件的分发,可以使用 Azure 门户、REST API 或任何客户端 SDK 以编程方式执行相同的操作。
若要使用 Azure 门户为 CDN 终结点配置 DSA 优化,请执行以下操作:
在“CDN 配置文件”页中,选择“终结点”。
此时会显示“添加终结点”窗格。
在“优化对象”下,选择“动态站点加速”。
对于“探测路径”,输入文件的有效路径。
探测路径是一项特定于 DSA 的功能,创建时需要一个有效路径。 DSA 使用位于源服务器上的小型探测路径文件来优化内容分发网络的网络路由配置。 如需探测路径文件,可以下载示例文件并将其上传到你的站点,或者使用源上现有的约 10 KB 大小的资产。
输入其他必需的终结点选项(有关详细信息,请参阅创建新的内容分发网络终结点),然后选择“添加”。
创建该内容分发网络终结点后,它将针对符合特定条件的所有文件应用 DSA 优化。
使用 Azure 内容分发网络实现 DSA 优化
Azure 内容分发网络上的动态站点加速将使用以下技术来加快动态资产的分发:
路由优化
路由优化非常重要,因为 Internet 是一种动态的位置,其中流量和暂时中断不断更改着网络拓扑。 边界网关协议 (BGP) 是 Internet 的路由协议,但可能存在通过中间接入点 (POP) 服务器实现的更快路由。
路由优化选择到原点的最佳路径,以便可持续访问站点和通过可能的最快和最可靠的路由将动态内容交付给最终用户。
Edgio 网络结合使用 Anycast DNS、高容量支持 PoP 和运行状况检查来确定将数据从客户端最佳路由到源服务器的最佳网关。
因此,即使在不可缓存的情况下,也可以更快速、更可靠地向最终用户分发完全动态的事务性内容。
TCP 优化
传输控制协议 (TCP) 是一种用于在 IP 网络上的应用程序之间分发信息的 Internet 协议套件标准。 默认情况下,建立 TCP 连接需要多个双向请求。 此外,还有一些限制来防止网络拥塞,这可能会导致大规模运营时效率低下。 Edgio 的 Azure CDN 通过在三个方面进行优化来处理此问题:
消除 TCP 慢启动
TCP 慢启动是 TCP 协议的算法,用于通过限制通过网络发送的数据量来防止网络拥塞。 它从发送者和接收者之间的较小拥塞窗口大小开始,直到达到最大值或检测到数据包丢失。
Edgio 的 Azure CDN 的配置文件将通过以下三个步骤消除 TCP 启动缓慢的问题:
通过监视运行状况和带宽来测量边缘 POP 服务器之间的连接带宽。
在边缘 POP 服务器之间共享指标,以便每个服务器都知道其周围的其他 PoP 的网络状况和服务器运行状况。
内容分发网络边缘服务器对一些传输参数进行假设,例如在与其邻近的其他内容分发网络边缘服务器通信时,最佳窗口大小应是多少。 此步骤意味着如果内容分发网络边缘服务器之间的连接的运行状况能够支持更高的数据包数据传输,则可以增加初始拥塞窗口大小。
使用持久连接
使用内容分发网络时,与直接连接到源服务器的用户相比,连接到源服务器的唯一计算机较少。 Azure 内容分发网络还会将用户请求汇集在一起,以减少与源服务器的连接。
如前所述,需要多个握手请求才能建立 TCP 连接。 持久连接(由 Keep-Alive
HTTP 标头实现)将重用多个 HTTP 请求的现有 TCP 连接来节省往返次数并加快传递。
Edgio 的 Azure CDN 还通过 TCP 连接发送周期性保活数据包,以防止打开的连接被关闭。
缓存
使用 DSA 时,将默认在内容分发网络上关闭缓存,即使源服务器在响应中包含 Cache-Control
或 Expires
标头也是如此。 DSA 通常用于因对每个客户端是唯一的而不应缓存的动态资产。 缓存可能会中断此行为。
如果网站中混合了静态资产和动态资产,最好采用混合方法来获得最佳性能。
借助 Edgio 的 Azure CDN 标准版的配置文件,可以使用缓存规则为特定的 DSA 终结点启用缓存功能。
访问缓存规则:
从“CDN 配置文件”页面中,在“设置”下,选择“缓存规则”。
“缓存规则”页随即打开。
创建一个全局的或自定义的缓存规则,来为 DSA 终结点启用缓存。
仅限于 Edgio 的 Azure CDN 高级版 的配置文件:你可以使用规则引擎为特定 DSA 终结点启用缓存。 创建的任何规则仅影响配置文件中已针对 DSA 进行优化的这些终结点。
访问规则引擎:
从“CDN 配置文件”页中,选择“管理” 。
此时会打开内容分发网络管理门户。
在内容分发网络管理门户中,选择“ADN”,然后选择“规则引擎”。
或者,可以使用两个内容分发网络终结点:一个终结点使用 DSA 进行优化,用于分发动态资产;另一个终结点使用静态优化类型(例如常规 Web 分发)进行优化,用于分发可缓存的资产。 修改网页 URL 以直接链接到计划使用的内容分发网络终结点上的资产。
例如:mydynamic.azureedge.net/index.html
是动态页面,从 DSA 终结点进行加载。 该 HTML 页面会引用多个静态资产,例如从静态内容分发网络终结点加载的 JavaScript 库或图像(例如 mystatic.azureedge.net/banner.jpg
和 mystatic.azureedge.net/scripts.js
)。