Amazon s3 在ec2实例上使用Cloudfront到源站时获取405错误代码

Amazon s3 在ec2实例上使用Cloudfront到源站时获取405错误代码,amazon-s3,amazon-ec2,amazon-cloudfront,Amazon S3,Amazon Ec2,Amazon Cloudfront,我创建了一个cloudfront发行版,它连接到两个来源: 1.我上传的s3静态网站。 2.具有以下配置的nginx docker的ec2实例: location /api { proxy_pass http://my_app:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded

我创建了一个cloudfront发行版,它连接到两个来源: 1.我上传的s3静态网站。 2.具有以下配置的nginx docker的ec2实例:

location /api {
        proxy_pass http://my_app:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
  client_max_body_size 1000M;
  server_tokens off;
我配置了两种行为 s3具有默认(*)路径模式,允许所有HTTP方法使用源缓存头。转发所有缓存和字符串

ec2路径模式api允许所有HTTP方法使用源缓存头。转发所有缓存和字符串

我得到405分

<html>
<head><title>405 Method Not Allowed</title></head>
<body>
<h1>405 Method Not Allowed</h1>
<ul>
<li>Code: MethodNotAllowed</li>
<li>Message: The specified method is not allowed against this resource.</li>
<li>Method: POST</li>
<li>ResourceType: OBJECT</li>
<li>RequestId: 871316565A038A65</li>
<li>HostId: BHbdP09UWX2xCvW6qqpOQYaGwy4lvgrVVYoSCaLrSBZ2TALZT5kk9Po7k6Akq2FYZ6NojFyINBk=</li>
</ul>
<hr/>
</body>
</html>

405方法不允许
405方法不允许
  • 代码:方法不允许
  • 消息:不允许对此资源使用指定的方法
  • 方法:邮寄
  • 资源类型:对象
  • 请求ID:871316565A038A65
  • 主机ID:BHBDP09UWX2XCVW6QQPOQYAGWY4LVGRVVYoscalRSBZ2TALZT5K9PO7K6AKQ2FYZ6NOJFYINBK=


响应来自S3,您可以在响应中看到RequestId和HostId。 S3支持POST http请求,但需要确保它包含表单数据。具有POST请求的S3只接受表单数据。


如果不能使用表单数据,请使用PUT请求到CloudFront。

响应来自S3,因为您可以在响应中看到RequestId和HostId。 S3支持POST http请求,但需要确保它包含表单数据。具有POST请求的S3只接受表单数据。

如果不能使用表单数据,请使用对CloudFront的PUT请求