利用Azure静态网站托管和CDN优化网站性能

在数字化时代,网站的性能和可用性对于任何企业来说都是至关重要的。随着云计算技术的不断发展,越来越多的企业选择将网站托管到云平台上。Azure作为微软推出的云服务平台,提供了丰富的服务和工具,帮助用户优化网站性能和降低成本。本文将详细介绍如何将现有的网站迁移到Azure静态网站托管服务,并利用CDN(内容分发网络)进一步提升网站性能。

在2018年底,微软正式推出了Azure静态网站托管服务,相较于传统的Azure Web服务,静态网站托管在成本上具有明显优势。尽管如此,静态网站托管在某些情况下存在一些限制,例如对大小写敏感的问题。为了解决这一问题,可以利用CDN服务,将网站内容分发到离用户最近的节点,从而提升访问速度和用户体验。

高阶架构图

在开始迁移之前,需要了解整个迁移过程的高阶架构。目标是将现有的网站迁移到Azure静态网站托管服务,同时确保网站的最大可用性。此外,还需要对现有的构建流水线进行修改,以适应新的部署需求。

创建新的存储账户

首先,需要创建一个新的Azure存储账户,用于托管网站内容。在创建存储账户时,需要选择订阅和资源组,并提供一个名称。存储账户的位置和访问层级并不是特别重要,因为大多数情况下,内容将通过CDN分发,而不是直接从存储账户提供。

启用静态网站功能

创建存储账户后,可以在设置列表中找到静态网站选项。启用该功能,并指定默认的索引文档名称和错误文档路径。这样,就会在Blob存储部分创建一个名为$web的默认容器。启用此功能后,请务必复制主要端点设置,稍后会用到。现在,已经准备好了存储账户,接下来需要将内容推送到其中。

部署流水线

需要通过构建流水线将文件部署到Azure。这需要将Azure App Service部署步骤替换为Azure文件复制步骤。确保源路径与之前相同($(Build.SourcesDirectory)\docs),并为环境和存储账户选择相应的设置。值得注意的是Blob前缀部分,通过设置Blob前缀,可以在同一个存储账户中运行多个网站,并通过后续配置镜像该设置。如果打算这样做,请现在设置一个Blob前缀值。运行流水线,并检查存储账户是否已经开始提供网页。

创建CDN

现在已经通过存储账户提供网页,接下来需要将CDN连接到前端。选择一个新的CDN,指定相同的订阅和资源组,并确保定价层级设置为Premium Verizon,以便访问高级规则系统。

CDN端点配置

CDN设置完成后,为每个托管的网站创建一个端点。为了充分利用存储账户内置的静态托管功能,需要将源类型设置为自定义,而不是存储。指定源主机名和主机标头为存储账户的主要端点。如果在构建流水线中使用了Blob前缀,或者在$web文件夹中使用“子文件夹”托管不同网站,请在源路径中指定一个额外的文件夹。关闭了HTTP,以强制执行端到端的SSL。

CDN规则配置

接下来,需要指定CDN规则来执行两项特定任务:将所有流量重定向到HTTPS,并将所有URL更改为小写。打开创建的CDN端点,选择高级功能设置,然后点击管理。在HTTP Large标题下打开规则引擎。

首先,添加一条新规则,检查传入的请求方案是否为Http。然后添加一个执行URL重定向的功能,重定向代码为301。然后使用以下语法将任何路径映射到HTTPS端点: origin-path/(.*)https://%(host)/$1

其次,需要添加一个始终为真的规则,将任何URL请求重写为小写。对于CDN上的每个端点,使用以下语法: (.*) 将目的地映射到小写使用以下语法: $L1 。保存这些规则需要几个小时才能推出,所以让继续前进,稍后再让事情传播。

CDN验证记录

下一步是将CDN端点与域名关联。为了在生产中这样做以确保没有停机时间,首先需要创建一个验证CNAME记录。这允许将域名(www.)与Azure CDN端点关联,而不必立即移动域名。将需要在DNS主机上执行类似的操作(上面的截图来自GoDaddy)。如果正在设置一个新域名,只需为www创建一个直接指向Azure CDN端点的CNAME记录。

CDN自定义域名

下一步是将CDN与自定义的域名关联。打开CDN端点,点击自定义域名并指定自定义主机名。

CDN HTTPS启用

一旦启用,打开自定义主机名并点击自定义域名HTTPS的“开”。

CDN证书申请

将证书应用于自定义域名的过程可能需要相当长的时间,所以现在是时候离开并让这个过程运行相当长的时间(个人会让它运行至少一整夜)。如果正在设置一个新域名,这个过程将自动发生。如果正在转移一个网站,将收到一封像下面的DigiCert电子邮件:

证书注册请求

这里需要注意的是,如果WHOIS联系点不是机器可读的(是隐藏的,或者在GoDaddy上需要人类验证码过程),那么必须设置以下电子邮件地址之一并确保可用: admin@ administrator@ webmaster@ postmaster@

CDN域名验证

一旦整个过程完成,应该已经验证了域名的所有内容。

CDN CNAME记录

最后一步是现在使用CNAME记录将www条目重定向到端点,如果还没有这样做的话。

最后说明

已经使用CDN运行这个网站几个月了,没有任何问题。成本从每天大约4美元降到每天一分钱或没有成本。如果这个网站的流量增加,这可能会稍微提高一点,但即使最有侵略性的计算,每个端点存储1GB和传输1GB,每月也只需要3.5美元。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485