Получение кода ошибки 405 при использовании Cloudfront для создания источника на экземпляре ec2 - PullRequest
1 голос
/ 28 мая 2019

Я создал дистрибутив облачного фронта, который связан с двумя источниками: 1. Статический веб-сайт s3, который я загрузил.2. Экземпляр ec2 с докером nginx со следующей конфигурацией:

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;

Я настраиваю 2 поведения 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>

1 Ответ

0 голосов
/ 28 мая 2019

Ответ приходит от S3, как вы можете видеть RequestId и HostId в ответе. S3 поддерживает HTTP-запрос POST, но вам нужно убедиться, что он имеет Form-Data. S3 с запросом POST принимает только данные формы. https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPOST.html

Если вы не можете использовать данные формы, используйте запрос PUT для CloudFront.

...