你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍适用于中小型 WordPress 安装的解决方案。 该解决方案提供了 Azure 平台的可伸缩性、可靠性和安全性,而无需复杂的配置或管理。 有关更大或存储密集型安装的解决方案,请参阅 Azure 上的 WordPress 托管选项。
体系结构
下载此体系结构的 Visio 文件。
注意
可以通过实现不特定于任何具体 WordPress 托管方法的提示和建议来扩展此解决方案。 有关部署 WordPress 安装的常规提示,请参阅 Azure 上的 WordPress。
数据流
此方案涵盖在 Azure 应用程序服务上运行的 WordPress 的可缩放安装。
- 用户通过启用了 Azure Web 应用程序防火墙的 Azure Front Door 访问前端网站。
- Azure Front Door 跨运行 WordPress 的应用程序服务 Web 应用分发请求。 Azure Front Door 检索未从 WordPress Web 应用缓存的任何数据。
- WordPress 应用程序使用服务终结点访问 Azure Database for MySQL 的灵活服务器实例。 WordPress 应用程序从数据库中检索动态信息。
- 通过同一可用性区域中的备用服务器为 Azure Database for MySQL 启用了本地冗余高可用性。
- 所有静态内容都托管在 Azure Blob 存储中。
组件
应用服务 是一种平台即服务(PaaS)产品/服务,提供用于构建、部署和缩放 Web 应用的框架。 在此体系结构中,应用服务托管 WordPress 应用程序。
Azure Database for MySQL 灵活服务器 是基于开源 MySQL 数据库引擎的托管关系数据库服务。 在此体系结构中,数据库选项存储 WordPress 数据。
Azure DDoS 防护 是一种网络安全服务,可提供增强的 DDoS 缓解功能。 在此体系结构中,DDoS 防护有助于抵御针对公共 IP 地址的 DDoS 攻击。
Azure Front Door 是一个现代云内容分发网络和全球负载均衡器。 在此体系结构中,Azure Front Door 是 Web 用户的应用程序入口点。
Azure 虚拟网络 是一种网络服务,为部署的资源提供相互通信、Internet 和本地网络的方式。 在此解决方案中,只能通过虚拟网络中的专用连接访问 Azure 应用服务和后端组件。
Blob 存储 是可缩放的优化对象存储服务。 在此体系结构中,Blob 存储托管 WordPress 应用程序的所有静态内容。
网络安全组(NSG) 是使用安全规则列表根据源或目标 IP 地址、端口和协议允许或拒绝入站或出站网络流量的安全功能。 在此体系结构中,NSG 规则限制子网中应用程序组件之间的流量流。
应用服务上的 WordPress 模板 是用于在应用服务上托管 WordPress 的托管解决方案模板。 在此体系结构中,模板提供预配置的 WordPress 部署,其中包括应用服务以及本部分所述的其他 Azure 服务。
备选方法
- 可以使用 Azure 托管 Redis 托管 WordPress 性能优化插件的键值缓存。缓存可以在应用服务 Web 应用之间共享。
- 可以使用内容分发网络代替 Azure Front Door 来向用户交付 Web 内容。
方案详细信息
此示例方案适合 WordPress 的中小型安装。
可能的用例
- 导致流量激增的媒体活动
- 使用 WordPress 作为内容管理系统的博客网站
- 使用 WordPress 的企业或电子商务网站
- 使用其他内容管理系统构建的网站
注意事项
这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负荷质量的指导原则。 有关详细信息,请参阅 Well-Architected Framework。
可靠性
可靠性有助于确保应用程序能够履行对客户的承诺。 有关详细信息,请参阅可靠性设计评审核对清单。
部署此解决方案时,请考虑以下建议:
- 应用程序服务提供内置的负载均衡和运行状况检查。 这些功能有助于在应用程序服务 Web 应用发生故障时保持可用性。
- 使用内容分发网络缓存所有响应时,可以获得较小的可用性优势。 具体而言,当源未响应时,你仍然可以访问内容。 但缓存不提供完整的可用性解决方案。
- 可以将 Blob 存储复制到配对区域,以便跨多个区域实现数据冗余。 有关详细信息,请参阅 Azure 存储冗余。
- 要提高 Azure Database for MySQL 可用性,请启用相同区域高可用性。 此功能会在与主服务器相同的可用性区域中创建备用服务器。 需要使用常规用途或业务关键计算层来启用相同区域高可用性。 有关详细信息,请查看适合你的需求的高可用性选项。
安全性
安全性提供针对故意攻击和滥用宝贵数据和系统的保证。 有关详细信息,请参阅可靠性设计审查检查表。
部署此解决方案时,请考虑以下建议:
- 使用 Azure Front Door 上的 Azure Web 应用程序防火墙来帮助保护流入前端应用层的虚拟网络流量。 有关详细信息,请参阅 Azure Front Door 上的 Azure Web 应用程序防火墙。
- 不允许出站 Internet 流量从数据库层流出。
- 不允许公共访问专用存储。
有关 WordPress 安全性的详细信息,请参阅常规 WordPress 安全性和性能提示和 Azure 安全性文档。
成本优化
成本优化侧重于减少不必要的开支和提高运营效率的方法。 有关详细信息,请参阅成本优化设计评审核对清单。
在部署此解决方案时,请查看以下成本注意事项:
- 流量预期(GB/月)。 流量是影响成本最大的因素。 你接收的流量决定了所需的应用程序服务实例数以及出站数据传输的价格。 流量还与你的内容分发网络提供的数据量直接相关,其中出站数据传输的成本更低。
- 托管数据量。 请务必考虑你在 Blob 存储中托管的数据量。 存储定价基于已用容量。
- 写入百分比。 考虑将多少新数据写入网站并在 Azure 存储中托管。 确定是否需要新数据。 对于多区域部署,写入网站的新数据量与跨区域镜像的数据量相关联。
- 静态内容与动态内容。 监视数据库存储性能和容量,以确定价格较低的 SKU 是否可以支持你的站点。 数据库存储动态内容,内容分发网络缓存静态内容。
- 应用程序服务优化。 有关优化应用程序服务成本的一般性提示,请参阅 Azure 应用程序服务和成本优化。
性能效率
性能效率是指工作负荷能够高效地缩放以满足用户需求。 有关详细信息,请参阅性能效率设计评审核对清单。
此方案在应用程序服务中托管 WordPress 前端。 应该启用自动缩放功能以自动缩放应用程序服务实例数。 可以设置自动缩放触发器来响应客户需求。 还可以根据定义的日程安排设置触发器。 有关详细信息,请参阅Azure 中的自动缩放入门。
作者
本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。
主要作者:
- Vaclav Jirovsky | 云解决方案架构师
其他参与者:
- Adrian Calinescu | 高级云解决方案架构师
要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。
后续步骤
产品文档:
- 什么是 Azure Front Door?
- 什么是 Azure Web 应用程序防火墙?
- 什么是 Azure Blob 存储?
- Azure Database for MySQL - 灵活服务器
- 什么是 Azure 虚拟网络?
- 关于 Azure Key Vault
- 快速入门:创建 WordPress 站点
- 什么是 Azure DDoS 防护?
Microsoft 培训模块: