最快的解决方案
使用Amazon S3和Amazon CloudFront部署基于Angular的应用程序。
使用默认或任何可用的webpack编译和打包应用程序到/build或/dist目录,使用ng build --prod
或者,在您的package.json中编写一个小脚本来覆盖默认的ng build
行为。例如,在构建期间添加或更新环境变量。
cp ./src/config.dev.js ./src/config.dev.bak.js && cp ./src/config.prod.js ./src/config.dev.js && react-app-rewired build && mv ./src/config.dev.bak.js ./src/config.dev.js
上面的代码片段(尽管运行了一个React应用程序构建)演示了如何覆盖默认的构建行为-它启动本地环境的备份,覆盖生产变量,然后在原始配置文件中再次恢复本地环境。
构建时间:约5分钟
一旦您准备好生产构建,就可以继续创建带有默认设置的Amazon S3存储桶(当然,随着您的探索,您可以调整设置和安全性)。以下是一个简单的解释,介绍如何开始使用Amazon S3-
学习创建存储桶。
创建存储桶之后,您可以配置其托管静态网站。以下是AWS官方文档中另一个链接,用于
托管静态网站。
配置Amazon S3所需的时间:约3分钟
一旦您的存储桶准备就绪,您可以简单地将构建代码上传到存储桶中。网站将在URL终端点上提供给您,该终端点在为存储桶配置静态服务器期间提供给您。
在使用Amazon S3时,您可能想考虑的一些配置选项包括:
Bucket-Policy;使用任何现成的样板Bucket Policy,并根据需要增强安全参数。
您也可以为存储桶配置“版本控制”,以维护发布历史记录。
您只需要不到10分钟即可上线!
部署后:
- 配置Amazon CloudFront,作为静态网站的内容分发网络。
启动指南:这是路径
创建一个分发需要几分钟时间,才能将源存储桶服务器连接到分发中。
除了其他Amazon Web服务(Amazon CloudWatch)之外,使用Amazon CloudFront还可以强制执行HTTPS重定向、为应用程序提供SSL加密,监视流量、请求、资源消耗并在分发上创建警报。
- 如果您想要重定向域上的流量-请使用Amazon Route53。
- 如果您的应用程序仍然需要更多灵活性,请使用AWS Lambda函数在运行时引入动态函数。
这应该是您用例的最有效和最快速的解决方案。最小的学习曲线和快速流畅的部署管道。
Amazon Web Services还有其他可用选项,例如AWS Elastic Beanstalk,它可以为您的PHP后端在云环境中提供一个Amazon EC2实例。不过与提供的解决方案相比,需要更多的配置。
祝一切顺利。
php-fpm
容器。非常感谢您的建议。 - Nicolas