为WordPress博客实施Amazon S3

亚马逊s3 wordpress

请注意: 自编写此书以来,我们已经迁移到 飞轮内容交付网络 由StackPath CDN提供支持,比Amazon快得多的CDN。378

除非您使用高级的企业托管平台,否则很难通过CMS之类的软件来获得企业性能 WordPress。 负载共享,备份,冗余,复制和内容交付并不便宜。

许多IT代表查看WordPress之类的平台并使用它们是因为它们 免费。 不过,自由是相对的。 将WordPress放在典型的托管基础​​架构上,几百个同时用户可以使您的网站停滞不前。 为了提高博客的性能,本周我修改了WordPress推送的安装,该推送来自Amazon S3(Amazon Simple Storage Service)。 这使我的服务器可以简单地通过PHP / MySQL推送HTML。

Amazon S3提供了一个简单的Web服务界面,可用于随时从Web上的任何位置存储和检索任意数量的数据。 它使任何开发人员都可以访问与Amazon用于运行其自己的全球网站网络相同的高度可扩展,可靠,快速,廉价的数据存储基础架构。 该服务旨在最大程度地发挥规模优势,并将这些优势传递给开发人员。

要为Amazon S3转换站点需要一些工作,但是这里是基础知识:

  1. 注册 亚马逊网络服务.
  2. 加载适用于S3的Firefox附件。 这为您提供了一个用于管理S3中内容的出色界面。
  3. 添加 ,在这种情况下,我添加了 www.martech.zone.
  4. 将CNAME添加到您的域注册器,以将您站点中的子域指向Amazon S3进行虚拟托管。
  5. 下载并安装适用于Amazon S3的WordPress插件。
  6. 设置您的AWS Access Key ID和Secret Key,然后单击update。
  7. 选择您在上方为创建的子域/存储桶 用这个水桶 设置。

wp-amazon-s3-settings.png

下一步是有趣的部分! 我不想只提供S3的将来内容,而是想提供所有内容,包括广告,主题和过去的媒体文件。

  1. 我为创建了文件夹 广告, 主题上传 在我的S3上。
  2. 我已将所有当前内容(图像和媒体文件)备份到适用的文件夹。
  3. 我修改了主题中的CSS文件以从中提取所有图像 www.martech.zone/themes.
  4. 我做了一个 MySQL搜索和替换 并更新了对要从S3子域显示的媒体内容的所有引用。
  5. 我更新了要在S3子域上的ads文件夹中显示的广告的所有图像参考。

从现在开始,我只需要将媒体上传到S3,而不是使用WordPress的默认图片上传对话框。 该插件在将S3图标放在WordPress管理员中的“上载/插入”图标的相同位置方面做得非常出色。

移动所有数据并在S3上运行几天已经导致S0.12费用为3美元,因此我不必担心所涉及的费用-也许每月只需花费几美元。 从好的方面来说,如果我有大量的访问者,那么我应该能够处理比当前平台更多的访问量。 我的网站正在加载有关的主页 过去40%的时间,所以我对这一举动感到非常满意!

关于此举的最好的事情是它实际上不需要任何开发!

28条评论

  1. 1

    嗨,

    我有一个Amazon S3帐户,但是在尝试解决之后,我就把它留下了,因为它太难了。 S3的firefox插件是否使它变得容易得多?

  2. 3

    我应该添加,您需要将CNAME指向新 your_unique_cloudfront_distribution_name.cloudfront.net而不是 your_unique_subdomain.s3.amazonaws.com。 但是之后,您就像对待普通的S3存储桶一样对待它。

    使用较高速度/较低延迟的CloudFront选项时,它的成本会更高。 如果您决定切换回标准S3版本,只需将CNAME切换回s3.amazonaws.com。

    大约一年前,我写了http://www.carltonbale.com/tag/amazon-s3/"a 很少有人对Amaon S3发表博客文章。

  3. 4
    • 5

      非常酷,卡尔顿! 因此,这是一个分布式网络,例如 Akamai的。 我没意识到他们有空! 看到一些费用后,我可能会占便宜。

      我以前曾启用过wp进行缓存,但是我有一些动态内容,因此我真的很努力,因为它有时会缓存我实际上想实时加载的内容。

      • 6

        Douglas 的支持与帮助下,

        从他们的描述看来,亚马逊在做的事情完全不同,他们说:

        “ Amazon CloudFront在全球主要市场中使用14个边缘位置。 八个在美国(弗吉尼亚州阿什伯恩;德克萨斯州达拉斯/沃思堡;加利福尼亚州洛杉矶;佛罗里达州迈阿密;新泽西州纽瓦克;加利福尼亚州帕洛阿尔托;华盛顿州西雅图;密苏里州圣路易斯)。 有四个在欧洲(阿姆斯特丹,都柏林,法兰克福,伦敦)。 两个在亚洲(香港,东京)。”

        他们基本上利用互联网交换来利用与最终用户的亲密关系,而像Akamai这样的CDN的服务器通常更靠近最终用户,通常位于ISP的网络内。

        亚马逊的做法是便宜得多,更有效的Akamai。

        罗杰里奥– http://www.itjuju.com/

  4. 7

    我不会说很难“通过WordPress之类的CMS获得企业绩效”。

    这完全取决于您如何设置基础架构或托管CMS的方式。
    卡尔顿指出,使用wp-supercache插件时,CMS本身的编码方式也可以在其性能中发挥重要作用。

    如果从一开始就将wp-supercache插件的功能内置到wordpress中,那就更好了–但这需要重写前端。 那是什么 lightpress.org 做到了。

    将静态内容卸载到S3之类的方法是从主服务器卸载处理和交付的一种好方法。 这是一种利用亚马逊基础设施进行繁重工作的简便方法,但是一旦您达到了克雷汀的门槛,亚马逊将开始变得昂贵,而在内部使用CDN则更便宜。

    罗杰里奥– http://www.itjuju.com/


    我一直在考虑这种情况,如果只有100个人聚集在一起,每月贡献他们通常会支付的一台像样的服务器的价格,他们就可以建立/组合几乎可以处理任何事情的托管基础​​架构。

  5. 8

    S0.12服务的头几天$ 3。 您是否会在几个月后重新讨论该主题,并显示一些流量与费用的统计数据? 有趣的是,如何将费用分解为唯一身份访问者,并与广告费用或其他投入进行对比。

  6. 13
  7. 14

    Amazon S3是一项非常有价值的服务。 我正在将其集成到CMS中。 从开发角度来看,而不是从Amazon服务角度来看,我遇到的唯一问题是,如果您希望用户通过POST将文件直接透明地直接上传到S3,并且您有一个多部分表单,其中包含发往本地的文本数据库,您陷入困境。 您要么需要将其分成两种形式,要么先尝试使用ajax上载文件,然后在本地成功提交数据。

    如果有人有更好的解决方案,请随时告诉我:o)

    但是,托管大型高流量文件所节省的成本保证了这种系统的开发。

    格兰特

    禁止清单管理系统

  8. 15

    嗨,

    伟大的写作。 正如您所描述的,我已逐步完成操作,但是在我上载图像的管理面板中,没有看到S3按钮。 我已经注意到,我的图像正常上传到亚马逊后,这是否意味着我现在可以复制所有现有图像并删除服务器上的图像了?

    我是否需要修改图像的来源或该插件执行此操作?

  9. 16

    嗨斯科特,

    您应该在典型图标的右侧看到一个看起来像数据库的小图标。 那是弹出亚马逊窗口的图标。 我将所有wp-content / uploads移到了Amazon,并确保我拥有相同的路径……唯一的区别是子域。 他们在 http://www..。 现在他们在images.marketingtechblog.com。 将所有图像复制到Amazon之后,我使用PHPMyAdmin进行了搜索并替换了src =” http://martech.zone”,然后将其替换为src =” images.marketingtechblog.com。 (https://martech.zone/wordpress/mysql-search-replace/)

    希望有帮助! 它不是无缝的,但可以。

    道格

  10. 17

    嘿道格拉斯,为此,我更新了数据库,使所有图像都指向图像。但是,我看到一些拇指(通过页面信息查看时)仍然显示www上的图像。

    这是该站点(www.gamefreaks.co.nz)–一个在首页上存在一些主要内存问题的站点,仅在我们转移了托管后才开始,因此我现在将一些托管压力转移给S3。 😎

  11. 18
  12. 19
  13. 20
    • 21

      它与最新版本兼容,但老实说,我不喜欢它的工作方式–您必须通过其他过程将所有图像转移并加载到S3。 实际上,我们可能会与WP建立更健壮的CDN(内容交付网络)集成,从而使同步而不是要求其他过程。

  14. 22
  15. 23

    您知道这是否也适用于“外部存储桶”吗? 我想为此设置一个我的朋友的博客,并让他使用我的AWS账户中的存储桶(我已经为他创建了一个用户账户,并使用Amazon IAM工具让他访问了我的一个存储桶)。

  16. 24
  17. 25
    • 26

      西莉亚,去AWS家 http://aws.amazon.com/ 在“我的帐户/控制台”下拉菜单下,选择“安全凭据”。 如果需要,请登录。 从那里向下滚动到“访问凭据”,您将看到列出的访问密钥ID。 复制其中一个作为此插件的密钥ID,然后单击“显示”链接以查看更长的秘密访问密钥。 复制该内容并将其粘贴到插件设置中。 在那之后,您应该一切就绪!

  18. 27
  19. 28

你觉得呢?

本网站使用Akismet来减少垃圾邮件。 了解您的数据如何处理.