Cloudfront无法将某些路径转发到源服务器

时间:2017-06-30 09:31:54

标签: amazon-cloudfront

我遇到了一个非常令人沮丧的问题,我的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端必定存在问题,但我无法弄清楚我可能做错了什么。

顺便说一下,同一个来源的其他行为路径也可以正常工作。

1 个答案:

答案 0 :(得分:1)

我发现了问题。

我的原始服务器上的IIS将网站绑定到特定主机名。问题是,当CloudFront使用“所有”标题时,这显然包括标题“主机”,这意味着IIS绑定失败。

虽然最初有点反直觉,但这显然很有道理。

要解决此问题,我只需要为CloudFront cname为IIS添加其他站点绑定。