我遇到了一个非常令人沮丧的问题,我的CF发行的某些路径。
在我的原始服务器(非AWS)上,我已对其进行了设置,因此所有经过身份验证的端点都以" / a /"开头。
因此,我已将CloudFront配置为转发所有标头,从而禁用缓存。我对此行为的CloudFront配置如图所示......
{
"TrustedSigners": {
"Enabled": false,
"Quantity": 0
},
"LambdaFunctionAssociations": {
"Quantity": 0
},
"TargetOriginId": "myorigin_id",
"ViewerProtocolPolicy": "redirect-to-https",
"ForwardedValues": {
"Headers": {
"Items": [
"*"
],
"Quantity": 1
},
"Cookies": {
"Forward": "all"
},
"QueryStringCacheKeys": {
"Quantity": 0
},
"QueryString": true
},
"MaxTTL": 31536000,
"PathPattern": "/a/*",
"SmoothStreaming": false,
"DefaultTTL": 86400,
"AllowedMethods": {
"Items": [
"HEAD",
"DELETE",
"POST",
"GET",
"OPTIONS",
"PUT",
"PATCH"
],
"CachedMethods": {
"Items": [
"HEAD",
"GET"
],
"Quantity": 2
},
"Quantity": 7
},
"MinTTL": 0,
"Compress": false
}
但是,对于以/ a /(即/ a / auth / login)开头的任何路径的所有请求都在CloudFront上失败。它给了我标准错误......
CloudFront无法连接到原点。
原始网址完美无缺。我已经验证了我的SSL证书。一切似乎都是正确的。
还有什么,如果我检查我的服务器日志,我可以看到,对于这些路径,CloudFront从不尝试联系原始服务器。 CloudFront用户代理的这些路径没有条目(成功或其他)。
它似乎不是由于任何类型的原点超时,因为错误会立即返回。
CloudFront端必定存在问题,但我无法弄清楚我可能做错了什么。
顺便说一下,同一个来源的其他行为路径也可以正常工作。
答案 0 :(得分:1)
我发现了问题。
我的原始服务器上的IIS将网站绑定到特定主机名。问题是,当CloudFront使用“所有”标题时,这显然包括标题“主机”,这意味着IIS绑定失败。
虽然最初有点反直觉,但这显然很有道理。
要解决此问题,我只需要为CloudFront cname为IIS添加其他站点绑定。