2017-06-30 56 views
1

我遇到了一個非常令人沮喪的問題,即我的CF分發的某些路徑。Cloudfront無法將某些路徑轉發到原始服務器

在我的原始服務器(非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": "https://stackoverflow.com/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 /認證/註冊)的任何路徑的所有請求失敗的CloudFront的。它給我的標準錯誤...

CloudFront無法連接到原點。

原始URL完美地工作。我已驗證了我的SSL證書。一切似乎都是正確的。

更重要的是,如果我檢查我的服務器日誌,我可以看到,對於這些路徑,CloudFront永遠不會嘗試聯繫原始服務器。 CloudFront用戶代理的這些路徑沒有條目(成功或其他)。

它似乎不是由於任何種類的原點超時,因爲錯誤是立即返回的。

CloudFront結束時必須有一個問題,但我無法弄清楚我可能做錯了什麼。

順便提一下,同一個原點的其他行爲路徑工作正常。

回答

1

我想通了這個問題。

我的原始服務器上的IIS將網站綁定到特定的主機名。問題在於,在CloudFront出現「全部」標題的情況下,這顯然包含標題「主機」,這意味着IIS綁定失敗。

雖然最初有點違反直覺,但這顯然是非常有意義的。

要解決此問題,我只需將其他站點綁定添加到CloudFront cname的IIS。

相關問題