从Cloudflare到Amazon API Gateway的DNS设置

9
我有一个mydomain.com网站,DNS是通过Cloudflare配置的。我正在建立一个通过api.mydomain.com访问的API。
我使用的服务器托管在Digital Ocean上,但我想使用Amazon API网关接口的某些功能(以后我将把所有服务器迁移到Amazon)。API服务器与网站相同(现在仍然是相同的Digital Ocean节点),API网关接口已配置好,我可以通过提供的端点someamazonendpointurl.com/stage正常访问它。
在Amazon上,我创建了一个Cloudflare分发来源于api.mydomain.com。它具有一些基本的HTTP到HTTPS行为以及查询字符串参数。然后我在Cloudflare上设置了一个CNAME记录,指向端点URL。但当我尝试访问api.mydomain.com时,我得到Chrome错误提示:
ERR_TOO_MANY_REDIRECTS

有没有人知道我可能配置错误了什么。我意识到这是一个有点奇怪的设置,但这只是我们将服务器迁移到亚马逊的临时措施。

更新

我注意到在cloudfront中有一个CNAME记录指向api.mydomain.com。我现在已经删除了它,但是出现了以下问题:

ERROR

The request could not be satisfied.

Bad request. 
Generated by cloudfront (CloudFront)
Request ID: <id>

我来自 API 网关。你能提供端点的原始请求/响应(包括所有标头)吗? - Abhigna Nagaraja
@AbhignaNagaraja 我也遇到了同样的问题,而且我一直收到“错误请求”的错误提示。头文件:https://gist.github.com/ile/496714ae00f6c4a4048bd84d3f5bf34e - ile
我猜测 Host 标头会触发 API 网关的警报。 - ile
1个回答

8

很可能您在Cloudflare上的SSL模式设置为“Flexible”,这种模式不使用https连接到源服务器。 API网关尝试重定向非安全请求,因此您会遇到重定向循环。

将SSL模式设置为“Full”即可解决问题!您可以在Cloudflare仪表板的“加密”选项卡中进行设置。


1
我在另一个问题的答案中发布了完整的设置指南。 - BonsaiOak
1
不幸的是,我的主要网站没有启用SSL(这也是我首先使用CloudFlare的原因)。 - TrickiDicki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接