Я столкнулся с подобной ситуацией при переходе к предварительно назначенным URL-адресам S3. Все работало на машинах разработки, но не работало на производстве, потому что CloudFront добавил дополнительные заголовки, которые изменили подпись. В моем случае, поскольку у меня уже были действительные предварительно назначенные URL-адреса, при условии, что заголовки не были удалены, я добавил proxy_pass_request_headers off;
, чтобы сделать прокси-запрос примерно эквивалентным прямому GET-запросу.