You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CloudFront搭配EC2 Nginx反向代理时仅HTTPS POST请求失败的排查求助

CloudFront搭配EC2 Nginx反向代理时仅HTTPS POST请求失败的排查求助

各位大佬好,我遇到一个特别诡异的问题,想请大家帮忙排查下:

我在EC2上跑了个Node.js服务,监听3000端口,同时用Nginx做反向代理,把80端口的请求转到3000。直接访问EC2的域名http://ec2-xxx.compute.amazonaws.com时,GET和POST请求都完全正常。

现在我想把api.mydomain.com指向这个服务,于是配置了ACM证书和CloudFront,现在的请求链路是:
(https) -> Route53 -> CloudFront -> (http) -> Nginx -> Node.js

但测试下来出现了奇怪的现象:

  • http://ec2-xxx.compute.amazonaws.com:GET/POST都正常
  • http://dyyyyy.cloudfront.net:GET/POST都正常
  • https://dyyyyy.cloudfront.net:GET正常,POST返回502错误
  • https://api.mydomain.com:GET正常,POST返回502错误

收到的错误页面内容是:

return (<TITLE>ERROR: The request could not be satisfied</TITLE>
)
502 ERROR

The request could not be satisfied.

我的Nginx配置如下:

server {
    listen       80;
    server_name  ec2-3-109-166-206.ap-south-1.compute.amazonaws.com;

    location / {
        proxy_pass         http://127.0.0.1:3000/;
        proxy_redirect     http://127.0.0.1:3000/ /;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_set_header Connection $http_connection;
        proxy_ssl_server_name on;
        proxy_ssl_session_reuse off;
    }
}

CloudFront配置详情

Settings

  • 价格类:Use all edge locations (best performance)
  • 备用域名(CNAME):api.mydomain.com
  • 自定义SSL证书:domain.com(ACM生成的ID)
  • 旧版客户端支持:未启用
  • 安全策略:TLSv1
  • 支持的HTTP版本:HTTP1、HTTP2、HTTP3
  • 标准日志:关闭
  • IPv6:开启

Origin

  • 域名:ec2-xxx.compute.amazonaws.com
  • 协议:match-viewer
  • HTTP端口:80
  • HTTPS端口:443
  • 最小Origin SSL协议:TLSv1.2
  • Origin路径:空
  • 启用Shield:否

Behavior

  • 路径模式:默认(*)
  • Origin:ec2-xxx.compute.amazonaws.com
  • 自动压缩对象:是
  • 查看器协议策略:Http and Https
  • 允许的HTTP方法:GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE
  • 限制查看器访问:否
  • 缓存键和源请求:缓存策略和源请求策略(推荐)
  • 缓存策略:CachingOptimized
  • 源请求策略:None
  • 响应头策略:CorsAndSecurityHeadersPolicy
  • SmoothStream:否
  • 字段加密:否
  • 函数关联:无关联(所有请求和响应)

我现在完全搞不懂为什么只有HTTPS的POST请求会失败,有没有大佬能指点下排查方向?或者有没有可能是我哪里配置漏了?

备注:内容来源于stack exchange,提问作者AlwaysHungrie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 06:58:03