CloudFront 如何在 S3 的现有分发服务网站上设置反向代理

2024-04-01

我有一个 S3 存储桶,它托管一个网站并通过 CloudFront 交付

现在我已将发行版附加到我的顶点根域,例如 - www.xyz.com

因此,之前我们使用 Nginx 从同一域上的网络服务器根提供静态前端 - www.xyz.com ,并且还设置了一个反向代理 - www.xyz.com/api/** ,它将流量路由到上游后端服务器在同一台机器上。

现在,我想将网站移动到 S3,但仍然在同一台计算机上运行后端 API,为此,我必须更改我的 DNS 记录并将它们指向 CloudFront 发行版。

但是,使用 www.xyz.com/api 作为后端服务的现有服务和之前部署和运行的服务将会中断 因此,我想将此路径模式上的所有请求转发到 http:///api ,以便现有应用程序不会中断。

我们有办法实现这一目标吗? IE -

从 CloudFront 分发的子路径转发请求 将静态前端从 S3 交付到外部应用程序服务器 ?

- -更新 - - ---Nginxconf重定向请求---

location /api/ {
                proxy_pass http://localhost:4040/api/;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection 'upgrade';
                proxy_set_header Host $host;
                proxy_cache_bypass $http_upgrade;
                proxy_http_version 1.1;
        }

这是在当前向世界公开根域和前端的服务器指令中,但现在我想将前端迁移到 S3,因此仅保留此位置块 /api 出于兼容性目的,直到我更新所有客户端上的配置。

如果是这样,请建议如何完成此操作,或者您需要我提供哪些信息来帮助完成此操作?

Thanks,


Create api.example.com在 DNS 中,指向您的 API。

在 CloudFront 中创建第二个源,指向api.example.com。将“原始路径”留空,因为它不会执行您可能假设的操作。

在 CloudFront 中创建新的缓存行为,路径模式为/api*。将其指向新创建的原点。

CloudFront 将发送所有请求/api* to api.example.com以及其他所有内容到默认的缓存行为来源,即存储桶。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CloudFront 如何在 S3 的现有分发服务网站上设置反向代理 的相关文章

随机推荐