你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

App 服务上的 WordPress

Azure Front Door
Azure 负载均衡器
Azure 虚拟网络
Azure 应用服务
Azure Database for MySQL

本文介绍适用于中小型 WordPress 安装的解决方案。 该解决方案提供了 Azure 平台的可伸缩性、可靠性和安全性,而无需复杂的配置或管理。 有关更大或存储密集型安装的解决方案,请参阅 Azure 上的 WordPress 托管选项

体系结构

Azure 应用程序服务上的 WordPress 的体系结构示意图。Azure Front Door 将流量路由到 Web 应用。Azure Database for MySQL 存储动态内容。

下载此体系结构的 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 存储中。

组件

  • 应用程序服务上的 WordPress 模版是用于在应用程序服务上托管 WordPress 的托管解决方案。 除了应用程序服务,该解决方案还使用本部分所述的其他 Azure 服务。
  • 应用程序服务提供一个用于生成、部署和缩放 Web 应用的框架。
  • Azure Front Door 是一种新式云内容分发网络。 作为分布式服务器网络,Azure Front Door 可有效地向用户提供 Web 内容。 内容分发网络将缓存的内容存储在靠近最终用户的接入点位置中的边缘服务器上,因此可以最大程度减少延迟。
  • Azure 内容分发网络将 Blob 存储在策略性位置,从而有效地向用户交付 Web 内容。 在此解决方案中,你可以使用内容分发网络作为 Azure Front Door 的替代方法。
  • Azure 虚拟网络使已部署的资源能够彼此通信、与 Internet 通信、与本地网络通信。 虚拟网络提供了隔离和分段。 它们还可以筛选和路由流量,并可以在不同位置之间建立连接。 在此解决方案中,两个网络将通过虚拟网络对等互连进行连接。
  • Azure DDoS 防护提供了增强的 DDoS 缓解功能。 将这些功能与应用程序设计最佳做法相结合时,它们将有助于抵御 DDoS 攻击。 应在外围虚拟网络上启用 DDoS 防护。
  • 网络安全组可使用一组安全规则,以根据源或目标 IP 地址、端口及协议允许或拒绝入站或出站网络流量。 在此方案的子网中,网络安全组规则会限制应用程序组件之间的流量。
  • Azure Key Vault 用于存储密码、证书和密钥并控制对它们的访问。
  • Azure Database for MySQL–灵活服务器是基于开放源 MySQL 数据库引擎的关系数据库服务。 灵活服务器部署选项是一种完全托管的服务,可提供对数据库管理功能和配置设置的精细控制和灵活性。 在此方案中,Azure Database for MySQL 负责存储 WordPress 数据。
  • Blob 存储提供可缩放、优化的对象存储。 Blob 存储非常适合云原生工作负载、存档、数据湖、高性能计算和机器学习。

备选方法

  • 可以使用 Azure Cache for Redis 托管 WordPress 性能优化插件的键值缓存。缓存可以在应用程序服务 Web 应用之间共享。
  • 可以使用内容分发网络代替 Azure Front Door 来向用户交付 Web 内容。

方案详细信息

此示例方案适合 WordPress 的中小型安装。

可能的用例

  • 导致流量激增的媒体活动
  • 使用 WordPress 作为内容管理系统的博客网站
  • 使用 WordPress 的企业或电子商务网站
  • 使用其他内容管理系统构建的网站

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

可靠性

可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述

部署此解决方案时,请考虑以下建议:

  • 应用程序服务提供内置的负载均衡和运行状况检查。 这些功能有助于在应用程序服务 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 中的自动缩放入门和 Azure 架构良好的框架文章:性能效率原则

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

  • Adrian Calinescu | 高级云解决方案架构师

若要查看非公开的 LinkedIn 个人资料,请登录到 LinkedIn。

后续步骤

产品文档:

Microsoft 培训模块: