如何将opencart与Amazon CDN集成?

时间:2018-12-24 11:14:42

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

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

我想要的是存储所有图像并下载到extensions,并使用Amazon S3Amazon S3检索图像。管理员上传图像时,该图像将存储在Amazon Cloudfront中,而不是本地卷存储中。

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

任何建议!!!

3 个答案:

答案 0 :(得分:0)

在市场上搜索,我找到了此解决方案Amazon CloudFront / S3 Integration

扩展名说:

  

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

答案 1 :(得分:0)

最后,我找到了解决方法。在上述问题中,基本上我们有两个问题: 1.集成Amazon S3 2.集成Amazon CloudFront

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

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

答案 2 :(得分:0)

我找到的最简单的方法是在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区域
  • 将名称服务器添加到您的域名注册商
  • 创建数据库,数据库用户并授予访问权限
  • 免费安装“让我们加密证书”
  • 为Opencart配置HTTP到HTTPS重定向
  • 激活SEO URL
  • 如何在AWS Lightsail中设置FileZilla SFTP来传输文件?
  • PHPMyAdmin访问权限
  • 如何升级到更高的Lightsail软件包?
  • 如何设置CDN?

让我们知道是否有任何疑问或疑虑。