中国cdn指南bluehost中国vps


中国cdn指南bluehost中国vps

你当前正在访问MicrosoftAzureGlobalEdition技术文档网站。如果需要访问由世纪互联运营的MicrosoftAzure中国技术文档网站,请访问。

内容分发网络(CDN)是高效地向用户分发Web内容的分布式服务器网络。CDN将缓存的内容存储在靠近最终用户的边缘服务器上,以最大限度低延迟。

CDN通常用来交付静态内容,例如图像、样式表、文档、客户端脚本和HTML页面。使用CDN的主要优点是延迟较低且能更快地将内容交付给用户,而与托管应用程序的数据中心的地理位置无关。CDN还可以帮助降低Web应用程序上的负载,因为应用程序不需要为对CDN中托管的内容发出的请求提供服务。

在Azure中,Azure内容分发网络是一个全局CDN解决方案,用于分发在Azure中或在任何其他位置中托管的高带宽内容。使用AzureCDN,可以缓存从AzureBlob存储、Web应用程序、虚拟机、任何可公开访问的Web服务器加载的公开可用对象。

本主题介绍了使用CDN时的一些常规最佳做法和注意事项。有关详细信息,请参阅AzureCDN。

传送客户端应用程序的静态资源,通常来自网站。这些资源可以是图像、样式表、文档、文件、客户端脚本、HTML页面、HTML片段,或服务器无需为每个请求修改的任何其他内容。应用程序可以在运行时创建项,并让CDN使用它们(例如,通过创建当前头条新闻列表),但不会为每个请求都这么做。

将公共静态内容和共享内容传送给设备,例如移动电话和平板电脑。应用程序本身是一个Web服务,可将API提供给不同设备上运行的客户端。CDN还可以通过Web服务传送静态数据集供客户端使用(也许用于生成客户端UI)。例如,CDN可用于分发JSON或XML文档。

根据需要将视频文件流式传输到客户端。视频可从提供CDN连接的全球数据中心获得低延迟和可靠连接的好处。MicrosoftAzure媒体服务(AMS)与AzureCDN集成,向CDN直接传送内容以实现进一步的内容分发。有关详细信息,请参阅:流式处理终结点概述。

一般而言,这可以改善用户体验,特别是与托管应用程序的数据中心距离遥远的用户。否则,这些用户可能会遇到较高的延迟。Web应用程序中内容的总大小基本上为静态内容,使用CDN有助于保持性能和总体用户体验,同时无需将应用程序部署到多个数据中心。有关AzureCDN节点位置的列表,请参阅AzureCDNPOP位置。

支持IoT(物联网)解决方案。IoT解决方案中涉及的巨量设备和电器可能很容易压垮某个应用程序(如果该应用程序必须直接将固件更新分发给每个设备)。

应对需求高峰和浪涌而无需缩放应用程序,避免增加后续运行成本。例如,对于硬件设备(例如特定型号的路由器)或消费型设备(例如智能电视)发布操作系统更新时,如果数以百万的用户和设备在短期间内下载更新,则可能会根据需要生成庞大的高峰量。

部署。确定CDN从中提取内容的来源,以及是否需要将内容部署到多个存储系统。请考虑用于部署静态内容和资源的流程。例如,可能需要执行单独的步骤才能将内容加载到AzureBlob存储中。

版本控制和缓存控制。考虑如何更新静态内容和部署新版本。了解CDN如何执行缓存和生存时间(TTL)。对于AzureCDN,请参阅缓存工作原理。

搜索引擎优化(SEO)。使用CDN时,图像和文档等内容由不同的域提供。这可能会影响此内容的SEO。

内容安全性。并非所有CDN都针对内容提供了任意形式的访问控制。某些CDN服务(包括AzureCDN)支持基于令牌的身份验证来保护CDN内容。有关详细信息,请参阅使用令牌身份验证保护Azure内容分发网络资产。

客户端安全性。客户端可从不允许访问CDN上资源的环境中连接。这可能是安全约束的环境,限制只能访问一组已知源,或防止从页来源以外的任何位置加载资源的环境。需要实施回退才能处理这些情况。

使用CDN是最小化应用程序负载和最大化可用性与性能的良好做法。考虑为应用程序使用的所有适当内容和资源采用此策略。设计策略来使用CDN时,请注意以下部分中所述的要点。

如果未在应用程序部署包或过程中包含静态内容,该静态内容可能需要与应用程序分开设置和部署。考虑这如何影响版本控制方法,也就是用于管理应用程序组件和静态资源内容的方法。

考虑使用绑定和缩减技术来为客户端减少加载次数。捆绑将多个文件合并到单个文件中。缩减在不更改功能的情况下从脚本和CSS文件中删除不必要的字符。

如果需要将内容部署到其他位置,则这属于部署过程的附加步骤。如果应用程序更新CDN的内容(也许是按固定间隔或为了响应事件),则必须将更新的内容存储在任何其他位置以及CDN的终结点中。

当预期要从CDN提供某些静态内容时,请考虑你将如何处理本地开发和测试。例如,可以将内容作为构建脚本的一部分,预先部署到CDN。另外,可以使用汇编指令或标志来控制应用程序如何加载资源。例如,在调试模式下,应用程序可以从本地文件夹加载静态资源。在发布模式下,应用程序将使用CDN。

请考虑用于文件压缩的选项,例如gzip(GNUzip)。压缩可以由Web应用程序宿主在源服务器上执行,也可以由CDN直接在边缘服务器上执行。有关详细信息,请参阅通过在AzureCDN中压缩文件来提高性能。

可能需要在不同的时间使用不同的CDN实例。例如,在部署新版的应用程序时,可能需要使用新的CDN并保留以前版本的旧CDN(以便以旧格式保存内容)。如果将AzureBlob存储用作内容来源,可以创建一个独立存储帐户或容器,并将CDN终结点指向它。

不要使用查询字符串来表示CDN上资源链接中不同版本的应用程序,因为从AzureBlob存储检索内容时,查询字符串是资源名称(Blob名称)的一部分。此方式还会影响客户端缓存资源的方式。

如果在CDN上缓存以前的资源,则在部署新版本的静态内容时更新应用程序可能是一个难题。有关详细信息,请参阅下文中有关缓存控制的部分。

考虑按国家/地区限制对CDN内容的访问。AzureCDN允许根据来源国家或地区筛选请求,并限制传送的内容。有关详细信息,请参阅按国家/地区限制内容访问。

考虑如何管理系统中的缓存。例如,在AzureCDN中,可以设置全局缓存规则,然后为特定的源终结点设置自定义缓存。可以通过在源终结点发送缓存指令标头来控制如何在CDN中执行缓存。

要防止对象在CDN上可用,可以从来源中删除这些对象、移除或删除CDN终结点,或者在使用Blob存储的情况下,将容器或Blob设为专用的。但是,在生存时间到期之前,不会将项目从CDN中移除。还可以手动清除CDN终结点。

CDN可以使用CDN提供的证书通过HTTPS(SSL)传送内容,也可以通过标准HTTP传送内容。若要避免浏览器发出有关内容混合的警告,可能需要使用HTTPS来请求通过HTTPS加载的页面所显示的静态内容。

使用CDN传送静态资产(如字体文件)时,如果使用XMLHttpRequest调用来从不同的域请求这些资源,则可能会遇到同源策略问题。许多Web浏览器会阻止跨源资源共享(CORS),除非Web服务器已配置为设置相应的响应标头。可使用以下任一方法配置CDN以支持CORS:

对CDN进行配置来将CORS标头添加到响应。有关详细信息,请参阅将AzureCDN与CORS一起使用。

如果源是Azureblob存储,请将CORS规则添加到存储终结点。有关详细信息,请参阅Cross-OriginResourceSharing(CORS)SupportfortheAzureStorageServices(Azure存储服务的跨域资源共享(CORS)支持)。

对应用程序进行配置来设置CORS标头。有关示例,请参阅ASP.NETCore文档中的启用跨源请求(CORS)。

考虑应用程序如何处理CDN失败或暂时不可用的情况。如果CDN不可用,客户端应用程序可以使用执行前面请求期间的本地缓存资源的副本(位于客户端),或者可以添加代码来检测失败,而不是从来源请求资源(应用程序文件夹或保留资源的AzureBlob容器)。