如何使用S3和Nginx实现一键式前端回滚

时间:2017-07-31 11:37:09

标签: amazon-web-services nginx amazon-s3

我有一个SPA,它在S3上托管,并通过RESTful API与后端进行通信。

我想要实施的内容类似于Firebase托管一键式回滚功能(请参阅下面的屏幕截图)。

enter image description here

当前的网络请求流程如下图所示

enter image description here

用户向URL发出请求,Nginx从S3获取正确版本的index.html(从Build V0.3路径获取正确的文件版本,以防止index.html CDN缓存。 index.html内的所有资产也在AWS S3上以绝对CDN路径托管。

S3上的项目结构类似于下图,

enter image description here

我使用一个目录(例如本例中为Build_V0.1)来实现某种命名空间(所有CSS和JavaScript文件都有版本标签后缀,main.xxxxx.js)。

我面临的问题是每次我需要部署新的App版本时,必须更新Nginx配置文件才能继续从正确的CDN路径获取最新版本的index.html(最新的Build_V0.X)。

例如,每次需要部署新版本时,我都必须将Nginx配置更改为以下内容(我只在此处使用prxoy_pass作为示例)。

# New path
location / {
    proxy_pass http://abc.amazon.aws/Build_V0.3;
}

# Old path
location / {
    proxy_pass http://abc.amazon.aws/Build_V0.2;
}

有没有办法在不经常配置Nginx配置文件的情况下实现一键式回滚。 Nginx服务器不由我管理并在Elastic Beanstalk上运行。我想要实现的是使部署像上传一堆静态文件一样简单。

我的一位朋友认为不断更改Nginx配置是危险且不可靠的,我应该考虑采用另一种方式来实现它。

0 个答案:

没有答案