标签: CDN

  • 如何修复“从无Cookie域提供静态内容”警告

    错误类型:
    浏览器错误
    错误名称:
    从无Cookie域提供静态内容
    英文名称:
    Serve Static Content From a Cookieless Domain
    错误描述:
    此警告通常出现在具有大量请求的站点上。解决此问题的一些方法包括使用CDN提供商去除cookie或设置单独的域和/或子域来提供cookie。

    如何修复“从无Cookie域提供静态内容”警告

    Pingdom、 GTmetrix或Google PageSpeed Insights中看到“从无Cookie域提供静态内容(Serve Static Content From a Cookieless Domain)”警告?

    通常,当您提供图像、JavaScript、CSS等内容时,没有理由伴随HTTP cookie,因为它会产生额外的开销。一旦服务器为特定域设置了cookie,该域的所有后续HTTP请求都必须包含cookie 。

    此警告通常出现在具有大量请求的站点上。解决此问题的一些方法包括使用CDN提供商去除cookie或设置单独的域和/或子域来提供cookie。

    由于Web 和新协议(例如HTTP/2)最近发生了变化,现在通常可以安全地忽略此警告。新连接的成本通常比通过同一连接流式传输所有内容的成本更高。 HTTP/2现在通过并行做了惊人的事情。而且cookies本身一般都很小。

    根据报告它的工具或软件,警告可能以几种不同的方式出现:

    • “从未设置cookie的域中提供以下静态资源”
    • “提供来自无cookie域的静态内容”

    提供来自无cookie域警告的静态内容

    提供来自无cookie域警告的静态内容

    但是,如果您仍想设置一个单独的域来提供cookie,请参考以下说明。

    修复从无Cookie域提供静态内容警告

    有几种方法可以修复“从无Cookie域提供静态内容”警告,例如使用CDN以及重新配置您的WordPress站点。

    1. 使用CDN
    2. 重新配置WordPress网站

    1. 使用CDN

    解决此警告的一种简单方法是使用CDN提供程序,该提供程序能够忽略cookie以及剥离cookie,这将完全阻止客户端接收Set-Cookie响应标头。

    国外品牌KeyCDN是一家提供此功能的CDN提供商。默认情况下,您可以看到启用了以下两个选项。这是一个简单的替代方案,而不必费心移动和配置您的站点以从单独的子域交付静态资产。

    忽略cookie以及剥离cookie

    注意: 您不能对通过CloudFlare提供服务的资源禁用cookie。 CloudFlare还在您的标头中包含其自己的安全cookie。同样,这些cookie非常小,对性能的影响也非常小。但是,如果您使用CloudFlare,则无法绕过此警告。

    2.重新配置WordPress站点

    您的第二个选择是重新配置您的WordPress站点以从新域或子域提供静态资产。注意:如果您使用顶级域,例如domain.com,那么您实际上需要完全使用一个单独的域。如果您使用的是www.domain.com,那么您可以简单地设置一个子域,例如static.domain.com。在本例中,我们假设您的网站位于www.domain.com。

    1. 首先,创建一个子域,例如static.domain.com。这是您将交付所有文件的地方。
    2. 将子域的DNS记录设置为指向主域的CNAME。
    3. 通过编辑您的wp-config.php文件将您的子域指向您的/wp-content目录:
      define(“WP_CONTENT_URL”, “http://static.domain.com”);
      define(“COOKIE_DOMAIN”, “domain.com”);
      define(“WP_CONTENT_URL”, “http://static.domain.com”);
      define(“COOKIE_DOMAIN”, “domain.com”);
      define("WP_CONTENT_URL", "http://static.domain.com"); 
      define("COOKIE_DOMAIN", "domain.com");
  • 如何解决WordPress网站的Cloudflare返回521错误

    错误类型:
    服务器错误
    错误名称:
    Cloudflare 521错误
    英文名称:
    Error 521
    错误描述:
    由于Cloudflare无法连接到您的站点,因此无法向访问者显示您的站点,而是显示521错误消息。

    如何解决WordPress网站的Cloudflare返回521错误

    在WordPress网站上使用Cloudflare等内容交付网络 (CDN)可以帮助您大幅减少加载时间。但是,您可能偶尔会遇到Cloudflare特定的问题,例如“521错误”。此特定错误会阻止平台连接到您的网站,这意味着您可能也无法访问网站。

    在本文中,我们将讨论Cloudflare反馈521错误是什么以及导致它的原因。然后我们将介绍三种方法来修复它。

    Cloudflare的521错误是什么?

    像Cloudflare这样的CDN将您网站的缓存副本存储在位于全球各地的服务器网络上。当访问者尝试访问您的网站时,Cloudflare 会“拦截”该连接并从最接近其位置的服务器加载缓存副本。这种方法通常会加快加载速度,同时降低站点主服务器的工作量。

    正如您在上面了解到的,521错误消息是特定于Cloudflare的错误消息。

    从本质上讲,这意味着您的Web浏览器能够成功连接到Cloudflare,但Cloudflare无法连接到源Web服务器 – 也就是您的WordPress站点的服务器。

    具体来说,Cloudflare尝试连接到您的WordPress站点的服务器,但收到连接拒绝错误作为响应。

    由于Cloudflare无法连接到您的站点,因此无法向访问者显示您的站点,而是显示521错误消息:

    error-521

    默认情况下,Cloudflare会告诉您它无法连接到网站的服务器,因为该服务器已关闭。但是,CDN可能无法连接到您的站点还有其他几个潜在原因。

    在我们讨论这些原因之前,重要的是要注意521错误不是特定于WordPress的。无论您使用什么内容管理系统 (CMS)以及在外部网站上,您都可能遇到此错误。但是,您使用WordPress的事实为您提供了一种解决问题的额外方法,我们将在后面详细介绍。

    什么导致Cloudflare返回521错误

    正如我们之前提到的,当Cloudflare无法与您网站的服务器建立连接时,会发生521错误。通常,发生这种情况是由于以下三个原因之一:

    1. 您网站服务器已关闭。即使其他一切配置正确,如果您的WordPress站点的服务器处于离线状态,Cloudflare也将无法连接。如果您使用的是信誉良好的WordPress服务器主机,您应该拥有近乎完美的正常运行时间率(大约 99.9%)。这意味着在大多数情况下,服务器停机不是521错误背后的根本原因。
    2. 您服务器可能阻止Cloudflare请求。 您的Web服务器可能运行良好,但由于某种原因阻止了Cloudflare的请求。由于Cloudflare的工作方式,某些服务器端安全解决方案可能会无意中拦截Cloudflare的IP地址。比如,一些防火墙会阻止他们认为可疑的 IP,而Cloudflare请求可能会被该网络捕获。因为Cloudflare是一个反向代理,所以进入您的源服务器的所有流量看起来都好像来自一小范围的Cloudflare IP(而不是每个访问者的唯一IP地址)。因此,一些安全解决方案会将来自有限数量IP地址的高流量视为攻击并阻止它们。
    3. 您的Cloudflare证书有问题。Cloudflare 可以使用自己的安全套接字层 (SSL) 证书对您的网站与其服务器之间的流量进行加密。如果该证书有问题,源服务器可能会拒绝连接。

    这似乎有很多潜在的领域需要覆盖。但是,在故障排除过程中,大多数这些原因很容易排除,我们将在下一节中讨论。

    如何修复Cloudflare返回521错误 (3 种方法)

    现在我们已经介绍了基础知识,我们将向您介绍如何解决WordPress中的Cloudflare返回的521错误。我们将逐步完成整个过程,首先排除最常见的原因(也是最容易修复的)。让我们从检查您网站的服务器是否已关闭开始。

    1. 查明您站点的服务器是否停机

    在信誉良好的托管服务提供商中,服务器停机是相当罕见的。许多提供商都吹嘘近乎完美的正常运行时间。因此,除非您使用的是不可靠的 Web 主机,否则您可以将其排除为521错误的根源。

    在继续之前,您需要确保您的WordPress站点的服务器在线且运行正常。如果不是,则深入研究进一步的故障排除步骤是没有意义的。

    但是,确保这不是问题仍然是一个好主意,特别是如果您不熟悉当前的托管服务提供商。如果由于错误521而无法访问您的网站,还有其他方法可以检查它是否在线。例如,您可以在命令终端中使用ping 命令无论您使用的是哪种操作系统 (OS),它都应该可以工作。

    Ping命令运行一个简单的测试,以确定服务器是否可达,并确保你没有任何连接问题。例如,这里我们正在为Google.com运行一个简单的ping 测试(通过输入“ping google.com”):

    ping-google-1

    如果您收到来自服务器的回复,则它已启动并可访问。

    查看服务器是否关闭的另一种方法是使用免费的在线服务,例如IsItDownRightNow?这个工具可以让你输入任何你想要的URL,并检查它是否可以访问:

    is-google-up-1

    你还可以运行cURL命令。如果您使用的是Mac或Linux,则可以直接从终端运行它。

    Windows默认没有安装cURL,虽然您可以安装它,但更简单的方法是使用KeyCDN的在线HTTP标头检查工具

    您所做的只是插入http://1.2.3.4,其中1.2.3.4是您服务器的实际IP地址。

    KeyCDN标头检查工具

    KeyCDN标头检查工具

    如果您的服务器已启动,您应该会看到HTTP 200响应。或者,您也可能看到404 Not Found,这也意味着网络服务器已启动(只是没有与该IP关联的页面):

    成功连接的示例

    成功连接的示例

    如果出现问题,您会看到类似Host Not FoundFailed to connect的信息:

    您的服务器出现问题的示例

    您的服务器出现问题的示例

    如果服务说该网站已启动,那么您就可以开始了。这意味着您的521错误的原因在于其他地方。如果您的服务器由于某种原因停机,您需要与您的托管服务提供商联系以找出原因。

    2. 将Cloudflare IP范围列入白名单

    您可以尝试的下一个修复是确保您的服务器的防火墙知道让Cloudflare请求通过。根据您使用的托管计划类型,您可能无法手动更改服务器的配置。例如,在大多数共享和托管计划中,您将无法修改服务器的防火墙设置。

    如果您使用的是非托管虚拟专用服务器 (VPS)或专用服务器,您应该拥有对必要选项的完全访问权限。如果您使用防火墙,则可以修改其设置并将Cloudflare的IP范围列入白名单

    您需要确保没有在.htaccessiptables或防火墙中阻止这些IP地址。而且您还需要确保您的托管服务提供商不会限制或阻止来自Cloudflare IP地址的IP请求。如果您不确定如何执行此操作,请联系您的主机支持人员。

    或者,您可以联系您的托管服务提供商,让他们检查服务器的防火墙是否阻止了Cloudflare的任何地址。由于CDN的流行,情况不应该是这样。但是,您的网络托管服务商的支持团队将能够给您一个明确的答案。

    3. 设置Cloudflare Origin 证书

    Cloudflare使您能够配置CDN应如何处理 SSL 证书。它为您提供了多种SSL模式选项,包括:

    • Flexible。在此模式下,Cloudflare 将使用 HTTP 连接到您的网站。理想情况下,除非您尚未为网站设置 SSL 证书,否则不应使用此模式。
    • Full。此模式让用户决定是使用HTTP还是HTTPS连接您的网站。但是,如果他们使用HTTPS,Cloudflare将不会验证您网站的证书。
    • Strict。此模式还使访问者能够决定使用哪种协议。但是,它会告诉Cloudflare检查您网站证书的有效性。

    如果您的证书存在导致521错误的问题,通常会在您使用Strict SSL模式时发生。这是因为Cloudflare还需要在其末端使用原始证书来加密与您网站的流量。

    生成Cloudflare源证书很简单,一旦你这样做了,你应该能够访问你的网站,而不会出现错误521。如果您站点的证书有问题,您将看到完全不同的错误代码(526错误)。

    小结

    如果您将Cloudflare与WordPress一起使用,您可能会遇到521错误。当Cloudflare无法与您网站的服务器建立连接时,会出现此特定错误代码。这可能是因为服务器已关闭、其防火墙阻止了Cloudflare,或者其SSL证书存在问题。

    总而言之,您可以通过以下方式对Cloudflare中的521错误进行故障排除:

    1. 检查您站点的服务器是否已关闭。
    2. 配置您服务器的防火墙以将Cloudflare IP范围列入白名单。
    3. 设置Cloudflare源证书。
  • 如何将WordPress媒体迁移至谷歌云存储

    如何将WordPress媒体迁移至谷歌云存储

    在之前的教程中,我们向您展示了如何将媒体迁移到Amazon S3。今天,我们将向您介绍如何将WordPress网站上的媒体卸载到Google Cloud Storage,以及选择直接从Google Cloud Storage或CDN提供媒体服务的几个选项。

    谷歌云存储只是谷歌云平台众多产品和服务的一小部分。由于Google拥有庞大的基础架构以及他们处理批量存储的事实,他们能够提供非常低的存储成本。远低于WordPress主机。

    通常,像这样的云存储用于需要使用我们的外部备份插件等解决方案进行额外备份或正在提供大文件(图像、照片、下载、软件、视频、游戏)的站点。他们的一些客户包括Spotify、Vimeo、可口可乐、飞利浦、Evernote和摩托罗拉。

    1. 谷歌云存储与谷歌云CDN
    2. 谷歌云存储定价
    3. WP-Stateless的WordPress谷歌云存储设置
    4. WP Offload Media的WordPress谷歌云存储设置

    谷歌云存储与谷歌云CDN

    不要将Google Cloud Storage与Google Cloud CDN或任何其他CDN提供商混淆。内容交付网络 (CDN) 专为加快媒体交付速度而设计,而Google Cloud Storage专为大容量存储解决方案而设计。

    但是,Google Cloud Storage可以帮助您加快网站速度,因为它使用所谓的多区域存储。这意味着您的Google Cloud Storage内容存储在该区域内的多个位置并从其交付,类似于CDN。它甚至使用相同的边缘缓存技术。但是,重要的是要注意这不是全球性的,并且可能比成熟的CDN解决方案具有更高的延迟。Google Cloud Storage可让您在三个区域之间进行选择:

    • 亚太地区
    • 欧洲联盟
    • 美国

    但我们将在下面向您展示如何将CDN与Google Cloud Storage一起使用。

    谷歌云存储定价

    Google Cloud Platform为新客户提供3个月300美元的免费试用期。如果您从未成为Google Cloud Platform的付费客户并且之前未注册免费试用,则您符合条件。这是在支付任何费用之前测试Google Cloud Storage并查看它是否适合您的网站的好方法。请参阅免费试用常见问题解答Google Cloud Storage定价

    谷歌云免费试用

    谷歌云免费试用

    WP-Stateless的WordPress谷歌云存储设置

    将Google Cloud Storage与WordPress网站集成的第一个选择是使用免费的WP-Stateless插件,该插件由Usability Dynamics的优秀团队开发。

    此插件会在将文件上传到媒体库时自动将文件从您的WordPress站点复制到Google Cloud Storage。然后它提供不同的模式,例如备份您的媒体副本,甚至从WordPress中删除媒体并从Google Cloud Storage提供服务。

    WordPress插件-WP-Stateless

    WordPress插件-WP-Stateless

    这个插件在块上仍然很新,但享有盛誉,并且正在积极维护和更新。在撰写本文时,它目前拥有超过2,000次活跃安装。它还提供与以下第三方插件的官方兼容性:

    • Easy Digital Downloads
    • Imagify Image Optimizer
    • ShortPixel Image Optimizer
    • WPForms
    • WP Smush
    • Advanced Custom Fields Image Crop Addon
    • SiteOrigin Widget Bundle
    • SiteOrigin CSS
    • Gravity Forms
    • WPBakery Page Builder

    仅仅因为插件没有在上面列出并不意味着它不能与集成一起使用。这些只是UsabilityDynamics团队花费额外时间修复错误和确认兼容性的插件。

    第 1 步

    要安装免费的WP-Stateless插件,您可以从WordPress插件库下载,或者在WordPress仪表盘中的“安装插件”下搜索“WP-Stateless”  。单击“立即安装”并启用它。

    安装WP-Stateless WordPress插件

    安装WP-Stateless WordPress插件

    第 2 步

    单击“Begin Setup Assistant”。或者您可以按照他们的手动设置说明进行操作。

    WP-Stateless

    WP-Stateless

    第 3 步

    点击“Google Login”。您应该使用您想与本网站关联的Google帐户并同意权限请求。如果您不确定是否授予对您的Google帐户的访问权限,请查看他们关于权限请求的文档。如果您不想提供对您的Google帐户的访问权限,您可以随时使用手动设置过程

    WP-Stateless谷歌登录

    WP-Stateless谷歌登录

    第 4 步

    点击“Allow”让他们查看和管理您在Google Cloud Platform服务中的数据。注意:一旦用户登录过程完成,他们就不会保留任何令牌或访问凭据。

    谷歌账户权限请求

    谷歌账户权限请求

    第 5 步

    然后,WP-Stateless将帮助您配置将存储WordPress媒体文件的Google Cloud项目和Bucket。

    • Google Cloud Project:每个Google Cloud Bucket都包含在一个项目中。您可以创建一个新项目或从现有项目之一中进行选择。
    • Google Cloud Bucket:您所有的WordPress数据都存储在一个Bucket中。您可以创建新Bucket或从现有Bucket中进行选择。
    • Google Cloud Bucket Multi-Regional Location:您新创建的Bucket将配备多区域存储类。选择最接近您网站的大多数访问者的区域。
    • Google Cloud Billing:如果您没有结算帐户,请单击按钮进行设置。不要忘记他们提供3个月300美元的免费试用

    提示:如果您想为Google Cloud Storage使用自己的自定义域或CDN URL,请确保将您的Bucket命名为与您的CDN域URL完全相同。存储桶名称:gcs.yourdomain.com. 它会给你一个关于字符的警告,但句点可以在Bucket名称中使用。它必须以字母数字字符开头和结尾。

    WP-Stateless项目和Bucket

    WP-Stateless项目和Bucket

    配置完以上所有内容后,单击“继续”。然后,您应该会看到一切都已正确设置的确认信息。

    WP-Stateless设置

    WP-Stateless设置

    WP-Stateless插件中的谷歌云存储设置

    您可以在“Media → Stateless Settings”下找到WP-Stateless和Google Cloud Storage设置。在“Settings”选项卡下,您需要配置您喜欢的模式。

    • Disabled: 禁用无状态媒体。
    • Backup:将媒体文件上传到Google存储并提供本地文件URL。
    • CDN:将媒体文件复制到Google存储并直接从那里提供服务。
    • Stateless:仅使用Google Cloud Storage存储和提供媒体文件。媒体文件不存储在本地。此选项将为您节省最多的磁盘空间
    • File URL Replacement: 在演示过程中扫描文章内容和元数据,并将本地媒体文件URL替换为Google Cloud Storage URL。此设置不会修改您的数据库。

    WP-Stateless模式

    WP-Stateless模式

    担心稍后会获取您的媒体文件?不用担心,该插件具有同步功能(我们将在下面进一步探讨),以防您想恢复。您还可以随时从Google Cloud Storage bucket本身获取WordPress上传文件夹,因为它只是模仿媒体库的确切外观(如下所示)。

    Google Cloud Storage WordPress bucket文件夹

    Google Cloud Storage WordPress bucket文件夹

    在页面下方,您还有其他设置:

    • Cache-Control: 默认情况下,设置为:public, max-age=36000, must-revalidate. 如果需要,您可以覆盖它。
    • Delete GSC File: 如果您希望在从WordPress媒体库中删除文件时从GSC中删除该文件,请启用此选项。
    • File URL and Domain:将默认GCS域替换为您自己的自定义域。这将要求您配置CNAME。请注意,桶名和域名必须完全匹配。根据他们的文档,自定义域不支持HTTPS,但它对我们来说效果很好。
    • Organization:将上传内容组织到基于年份和月份的文件夹中。
    • Cache Busting:在文件名前添加一组随机的数字和字母。这对于在上传具有相同文件名的文件时防止缓存问题很有用。

    WP-Stateless附加设置

    WP-Stateless附加设置

    您上传到WordPress媒体库的图像会自动复制到Google Cloud Storage。但是,在您首次配置插件后,您将需要运行批量同步。在“Media → Stateless Settings → Sync”下,您有以下选项:

    • 重新生成所有无状态图像并将Google Storage与本地服务器同步。(注意:第一次使用此选项需要一段时间)
    • 在Google Storage和本地服务器之间同步非图像文件。
    • 在Google Storage和本地服务器之间同步非媒体库文件。

    WP-Stateless同步

    WP-Stateless同步

    WP Offload Media的WordPress谷歌云存储设置

    将Google Cloud Storage与WordPress网站集成的第二个选择是使用Delicious Brains Inc.提供的同样出色的免费WP Offload Media Lite插件(或高级 WP Offload Media)

    WordPress插件WP Offload Media

    WordPress插件WP Offload Media

    精简版的WP Offload Media绝对可以满足您的大部分需求;但是,如果您升级到高级版本,则有一些不错的功能:

    • PriorityExpert™ 电子邮件支持。
    • 将现有媒体库上传到云存储。
    • 从媒体库控制云存储文件。
    • 在后台卸载后从服务器中删除文件。
    • 下载并从云存储中删除。
    • 在后台在您的存储提供商上的存储桶之间复制文件。
    • 使用Assets Pull Addon只需单击几下,即可从CloudFront或其他CDN提供站点资源(CSS、JS、图像、字体等)。
    • 与WooCommerce、WPML、Easy Digital Downloads、Meta Slider、Enable Media Replace和Advanced Custom Fields集成。

    第 1 步

    要安装免费的WP Offload Media Lite插件,您可以从WordPress插件库下载它,或者在WordPress仪表盘中的“安装插件”下搜索“WP Offload Media Lite”。单击“立即安装”并启用它。

    安装WP Offload Lite WordPress插件

    安装WP Offload Lite WordPress插件

    第 2 步

    按照他们的Google Cloud Storage快速入门说明进行操作:

    谷歌云存储CDN集成

    担心谷歌云存储的性能?确实,多区域存储根本不会像普通的CDN那样快,而且对于全球用户来说绝对不是很好。但是,您仍然可以通过您最喜欢的CDN提供商传送文件。下面是几个不同的选项。

    使用KeyCDN配置WP-Stateless

    只需按照以下步骤操作,我们将使用KeyCDN作为示例。

    重要提示:这确实意味着Google Cloud Storage和您的CDN提供商都会向您收费,因此您可能需要事先处理这些数字。或者,如果您使用的是Google Cloud Platform试用版,那么这是一种无需Google收费即可估算成本的好方法。

    1. 专门为您的Google Cloud Storage媒体设置一个新区域。遵循KeyCDN的Google Cloud Storage CDN集成教程。本质上,您使用Google Cloud Storage作为您的源服务器。
    2. 在新区域上部署Let’s Encrypt for HTTPS。
    3. 在KeyCDN设置新的区域别名。示例:gcs.yourdomain.com
    4. 在WP-Stateless插件设置中使用您的区域别名。

    结果是KeyCDN现在正在交付您所有的Google Cloud Storage文件。性能问题解决!

    谷歌云存储和KeyCDN

    谷歌云存储和KeyCDN

    由于WP-Stateless插件仅处理您的媒体库(图像),您可能还希望通过CDN提供您的脚本(JS、CSS)。只需按照以下步骤操作。

    1. 使用您的CDN提供商为您的资产配置一个单独的区域,并使用与上述不同的URL,例如cdn.yourdomain.com.
    2. 安装支持排除的WordPress CDN插件:  CDN enabler(免费)、  Perfmatters(付费)或 WP Rocket(付费)。
    3. 设置排除项,以便您的CDN插件仅加载CSS、JS等。这样WP-Stateless插件处理您的媒体文件,而CDN插件处理您的其他资源。

    Perfmatters中的CDN排除项

    Perfmatters中的CDN排除项

    最终结果是您的媒体从您的自定义CDN URL(从Google Cloud Storage中提取)加载,而您的资产从您的其他自定义CDN URL加载。如果您在“Stateless”模式下运行,您的WordPress网站将不会为图像使用任何磁盘空间。很酷!

    谷歌云存储和CDN组合

    谷歌云存储和CDN组合

    使用Google Cloud CDN配置WP Offload Media

    默认情况下,WP Offload Media配置为在提供卸载媒体时使用原始Google Cloud Storage URL。您的媒体URL可能如下所示:

    http://storage.googleapis.com/bucket-name/wp-content/uploads/…

    查看他们关于如何为Google Cloud Storage设置自定义域CDN的教程。

  • WordPress网站Amazon S3和CDN集成指南

    WordPress网站Amazon S3和CDN集成指南

    在本教程中,我们将向您介绍如何完成WordPress Amazon S3集成以及可选地使用内容交付网络 (CDN)。这可以大大节省您的带宽成本,充当备份,并帮助加快您的站点。

    Amazon S3是一种存储解决方案,是Amazon Web Services众多产品的一部分。通常,这用于需要使用我们的外部备份插件等解决方案进行额外备份的站点,或者正在提供大文件(下载、软件、视频、游戏、音频文件、PDF等)的站点。

    亚马逊拥有非常可靠的可靠记录,并且由于其庞大的基础设施,它们能够提供非常低的存储成本。S3的一些客户包括Netflix、Airbnb、SmugMug、Nasdaq等。

    Amazon S3

    由于Amazon S3完全处理大容量存储,您几乎可以保证定价会比您的WordPress主机便宜。将媒体迁移到AWS是一种省钱的好方法,并且在您的第一年免费(最多5GB存储空间)。此外,由于您的媒体请求是直接从亚马逊提供的,因此您的WordPress网站的负载更少,这意味着加载时间更快。

    不要将Amazon S3与Amazon CloudFront混淆。CloudFront是一种CDN解决方案,而S3是一种存储解决方案。但是,它们都可以互换使用,因为我们将在下面进行更多介绍。

    WordPress网站Amazon S3设置

    对于这种集成,我们建议使用WP Offload S3 Lite插件,由Delicious Brains的优秀团队开发。基本版是免费的。当文件上传到媒体库时,插件会自动将文件从您的WordPress站点复制到Amazon S3。然后有一个用于添加CDN的可选配置,例如Amazon CloudFront、KeyCDN或MaxCDN。

    WP Offload S3 Lite

    WP Offload S3 Lite

    这个插件非常轻量级,确切地说只有 204 KB。在撰写本文时,它目前拥有超过 30,000 次活跃安装,并获得 4 星评分(满分为 5 星)。请按照以下步骤操作。

    第 1 步

    接下来,安装免费的WP Offload S3 Lite插件。您可以从WordPress插件库下载它,也可以在WordPress仪表盘中的“安装插件”下搜索“wp offload s3”。单击“立即安装”并启用它。

    安装WP Offload S3 Lite

    安装WP Offload S3 Lite

    第 2 步

    您可以按照Delicious Brains的WordPress Amazon S3文档进行操作,或者我们将引导您更深入地了解其余部分。登录到您的亚马逊网络服务帐户。如果你没有,你可以免费注册。然后您需要创建一个新用户。选择一个用户名并确保选择“Programmatic access”。

    亚马逊网络服务 – 添加用户

    亚马逊网络服务 – 添加用户

    第 3 步

    现在您需要为用户设置权限以管理S3中的文件,因此选择“Attach existing policies directly”并单击“Create policy”。这将在新窗口中打开。一旦你完成了,你将需要回到这个。

    AWS中的权限

    AWS中的权限

    第 4 步

    单击创建您自己的策略选项旁边的“Select”。

    在AWS中创建策略

    在AWS中创建策略

    第 5 步

    接下来,您需要为您的保单命名和描述。这可以是任何你想要的。然后将以下代码复制到“Policy Document”部分。

    {
    “Version”: “2012-10-17”,
    “Statement”: [
    {
    “Effect”: “Allow”,
    “Action”: [
    “s3:CreateBucket”,
    “s3:DeleteObject”,
    “s3:Put*”,
    “s3:Get*”,
    “s3:List*”
    ],
    “Resource”: [
    “arn:aws:s3:::*”
    ]
    }
    ]
    }
    {
    “Version”: “2012-10-17”,
    “Statement”: [
    {
    “Effect”: “Allow”,
    “Action”: [
    “s3:CreateBucket”,
    “s3:DeleteObject”,
    “s3:Put*”,
    “s3:Get*”,
    “s3:List*”
    ],
    “Resource”: [
    “arn:aws:s3:::*”
    ]
    }
    ]
    }
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": [
    "s3:CreateBucket",
    "s3:DeleteObject",
    "s3:Put*",
    "s3:Get*",
    "s3:List*"
    ],
    "Resource": [
    "arn:aws:s3:::*"
    ]
    }
    ]
    }

    此策略允许用户创建buckets、仅删除文件(不是buckets)、上传文件、下载文件以及列出文件和buckets。这是插件运行所需的基本权限级别。

    但是,我们建议您查看Delicious Brain关于额外bucket限制的文档。例如,修改上面的资源部分并添加您的存储桶名称以将其锁定(perftesting是我们在步骤 11中buck down的名称)。

    “Resource”: [
    “arn:aws:s3:::perftesting/*”,
    ]
    “Resource”: [
    “arn:aws:s3:::perftesting/*”,
    ]
    "Resource": [
    "arn:aws:s3:::perftesting/*",
    ]

    然后单击“Create Policy”。

    现在订阅 查看AWS中的政策

    查看AWS中的政策

    第 6 步

    从步骤4返回到窗口,您现在需要将策略添加到您正在创建的用户。单击“Refresh”,您应该会在顶部看到刚刚创建的新策略。选择它并单击“Next”。

    用户的AWS权限

    用户的AWS权限

    第 7 步

    然后点击“Create use”。

    AWS创建用户

    AWS创建用户

    第 8 步

    在最后一个屏幕上,您需要将您的访问密钥ID和私密访问密钥复制到一个安全的地方,因为您需要将其返回到您的WordPress仪表盘中。

    AWS访问密钥

    AWS访问密钥

    第 9 步

    然后回到WordPress,点击AWS下的“Access Keys”并输入您刚刚创建的凭证。或者,正如Delicious Brains建议的那样,最好在wp-config.php文件中定义它们。只需复制以下代码段并用键替换星号。

    define( ‘DBI_AWS_ACCESS_KEY_ID’, ‘********************’ );
    define( ‘DBI_AWS_SECRET_ACCESS_KEY’, ‘****************************************’ );
    define( ‘DBI_AWS_ACCESS_KEY_ID’, ‘********************’ );
    define( ‘DBI_AWS_SECRET_ACCESS_KEY’, ‘****************************************’ );
    define( 'DBI_AWS_ACCESS_KEY_ID', '********************' );
    define( 'DBI_AWS_SECRET_ACCESS_KEY', '****************************************' );

    在WordPress中连接亚马逊网络服务

    在WordPress中连接亚马逊网络服务

    第 10 步

    然后,您必须创建一个要使用的Bucket。如果您尚未注册Amazon S3,您可以在此处注册。他们有一个免费试用版,您可以开始使用。单击AWS插件设置下的“S3 and CloudFront”,然后单击“Create bucket”。然后,您可以选择一个地区。单击“Create New Bucket”。请记住,存储成本因地区而异。查看价格

    创建Amazon S3 Bucket

    创建Amazon S3 Bucket

    第 11 步

    要让WP Offload S3与某些第三方插件(例如WooCommerce)一起使用,您可能需要安装并激活它们的一些兼容性插件。这有时需要支付他们的高级许可证。但是,很多时候您也可以使用免费版本。默认情况下,会选中如下所示的以​​下选项。如果您通过HTTPS运行,则需要启用它。

    AWS插件设置

    AWS插件设置

    您的WordPress Amazon S3设置现已完成!当您的图像上传到您的WordPress媒体库时,它们现在将被复制到Amazon S3存储中。您也可以对您的资产(CSS、JS、字体等)执行相同的技术,但它需要高级许可证才能获得资源拉取插件

    注意:通过SFTP手动上传的文件不会被复制到Amazon S3。WP Offload Media仅迁移首次上传到您的WordPress媒体库的项目。

    上面的另一个重要设置是在将文件迁移到S3后从本地服务器中删除文件的选项。这有助于大幅减少WordPress主机的磁盘空间需求。如果启用此功能,请确保检查与其他插件的兼容性。您还可以查看有关从浏览器将文件上传到Amazon S3的教程。

    WordPress Amazon S3和CDN

    如果您使用CDN来加快资源交付速度,您可以在CloudFront或自定义域部分启用此功能。查看以下这些教程,让您快速上手。

    设置好CDN URL后,您可以将其输入到自定义域字段中,如下所示。

    CDN Amazon S3

    CDN Amazon S3

    请务必查看我们的教程,了解如何将媒体迁移到Google Cloud Storage