【问题标题】:How to integrate opencart with Amazon CDN?如何将 opencart 与 Amazon CDN 集成?
【发布时间】:2019-05-23 13:46:48
【问题描述】:

我一直在尝试将 Amazon S3 和 Amazon Cloudfront 与我过去几天使用 opencart 开发的网站(托管在 Amazon EC2)集成。在搜索时,我发现了很多extensions,其中没有一个符合要求。 根据extensions,所有数据都存储在本地卷存储中,您可以在 /image/ 目录的根目录下创建一个子域,并从子域访问图像。但是在这里我看不到图像和所有图像是如何到达 Amazon S3 的。我可能在这里遗漏了一些东西。但下面是我想要实现的。

我想要的是存储所有图像并下载到Amazon S3 并使用Amazon CloudfrontAmazon S3 检索相同的图像。当管理员上传图片时,图片会存储在 Amazon S3 而不是本地卷存储中。

我已经浏览了 opencart 默认安装附带的 /image/ 模型库文件。查看文件后,似乎不可能在当前结构中实现我想要的。我看到的解决方案是为此创建自己的库并更新opencart 的每个文件,其中使用图像或使用存在的任何扩展名(使用这将导致使用Amazon Elastic load balancingAmazon Auto Scaling 时出现问题)。

任何建议!!!

【问题讨论】:

    标签: php amazon-s3 amazon-ec2 aws-sdk opencart2.x


    【解决方案1】:

    搜索市场我找到了这个解决方案,Amazon CloudFront / S3 Integration

    扩展名说:

    使用 Amazon CloudFront 加快您网站上的图像加载速度。这种集成让您可以轻松地将 OpenCart 图像缓存上传到 S3 并通过 CloudFront 提供服务。

    【讨论】:

    • 感谢您指出这一点。我已经检查了这个扩展。这个扩展的问题是它只在 S3 存储桶上存储图像缓存,所有图像都保留在卷存储本身上,这会在实施 Amazon ELB 或 Amazon Auto Scaling 时出现问题。
    • 好的,我知道了。您希望网络服务器提供来自 s3 的图像,而不是本地卷。目前都是使用opencart实现的。
    • 是的,这就是我想要的。
    【解决方案2】:

    我终于找到了办法。基本上我们在上述问题中有两个问题:- 1. 集成亚马逊 S3 2. 集成 Amazon CloudFront

    1. 集成 Amazon S3 最佳实践是使用 S3 完全简化 '{$ROOT}/image' 中的所有目录和文件。最终目标是使应用程序尽可能具有可扩展性。这样,当我们将负载均衡器放在我们的应用程序前面时,它就不会产生任何问题,因为文件不再保存在我们的本地存储中。 要实现这一点 - 必须自定义应用程序,以便当管理员添加/更新任何图像时,它们都会添加/更新到 S3 而不是本地存储。此外,当图像被拉到网站前端时,它们都会从 S3 而不是本地存储中拉出。

    2. 集成 Amazon CloudFront 这有两个选择:- 2a.实施 S3 - 只需在亚马逊云端提供 S3:Bucket:ARN 并在整个 Web 应用程序中更改图像 url。 2b。没有 S3(使用本地存储) - 我们需要将应用程序的图像目录 url 提供给亚马逊云端,而不是 S3:Bucket:ARN,例如:- www.example.com/image/ 就是这样。现在通过 web 应用程序更改图像的 url,图像将从 amazon cloudfront url 中提取出来。

    【讨论】:

      【解决方案3】:

      我发现最简单的方法是托管在 AWS Lightsail 计划中。虽然 AWS Lightsail 计划默认不支持 Opencart,但我们可以使用 LAMP 堆栈并在其中添加 opencart 代码。

      Host LAMP stack in AWS Lightsail, Opencart hosting in AWS

      在这篇文章中,我们描述了

      • 如何在 Lightsail 中设置实例
      • 如何选择免费套餐计划
      • 在 AWS Lightsail 中更新系统和 PHP 版本
      • AWS Lightsail LAMP 堆栈中的 Opencart 安装步骤
      • 创建静态 IP
      • 创建 DNS 区域
      • 将域名服务器添加到您的域名注册商
      • 创建数据库、数据库用户并授予访问权限
      • 免费安装 Let's Encrypt 证书
      • 为 Opencart 配置 HTTP 到 HTTPS 重定向
      • 激活 SEO URL
      • 如何在 AWS Lightsail 中设置 FileZilla SFTP 来传输文件?
      • PHPMyAdmin 访问权限
      • 如何升级到更高版本的 Lightsail 软件包?
      • 如何设置 CDN?

      如果有任何问题或疑虑,请告诉我们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-04
        • 2021-07-21
        • 1970-01-01
        • 2022-10-02
        • 2022-05-06
        • 2015-11-03
        • 2013-01-11
        • 2018-11-20
        相关资源
        最近更新 更多