【问题标题】:Can I reverse-proxy POST requests while using CloudFront CDN for GET requests?在使用 CloudFront CDN 处理 GET 请求时,我可以反向代理 POST 请求吗?
【发布时间】:2022-01-24 22:15:45
【问题描述】:

目前我有从 S3 存储桶提供 SPA (spa.myapp.com) 的 CloudFront 分配。我还在 AWS 上的 k8s 中部署了 Web 服务器。

  1. 是否可以将所有 POST spa.myapp.com/* 请求转发到我的网络服务器?我需要哪些组件/配置来执行此操作?

  2. 是否可以将所有 spa.myapp.com/api/* 请求转发到我的网络服务器(不管 http 方法)?我需要哪些组件/配置来执行此操作?

通常我想从 CDN 提供 SPA,但在同一域上也有很少的端点服务器端。

【问题讨论】:

    标签: amazon-web-services amazon-cloudfront


    【解决方案1】:
    1. * 路径的 CloudFront 行为中,您应该允许所有类型的方法:

    来自docs

    CloudFront 始终缓存对 GETHEAD 请求的响应。您还可以将 CloudFront 配置为缓存对 OPTIONS 请求的响应。 CloudFront 不会缓存对使用其他方法的请求的响应。

    这意味着POST 请求总是被重定向到源(后端),对这些请求的响应不会被缓存。如果缓存未命中,GETHEAD 请求也可能会被重定向。否则返回缓存中的数据。

    1. 当您创建 CloudFront 分配时,您必须将行为设置为默认值。通常,您保持默认路径模式不变,因此 *:

    你可以有多种行为,它们可以有不同的缓存属性。这些行为由它们的路径模式来区分。它们也可以具有优先级,传入的请求首先根据更高优先级的行为进行评估。例如:

    要回答您的问题,您必须为/api/* 路径创建不同的行为,并为此行为应用不同的配置。与默认行为相比,这必须具有更高的优先级。请记住,CloudFront 仅缓存 GETHEADOPTIONS 请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      • 2018-05-30
      • 2021-05-11
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 2019-10-17
      相关资源
      最近更新 更多