2017-06-30 5 views
1

私の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": "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は、特定のホスト名にバインドされたWebサイトを持っていました。問題は、CloudFrontの「すべて」ヘッダーをフォワードすると、明らかにヘッダー「ホスト」が含まれていることになり、IISバインドが失敗していたことを意味します。

最初はやや直感的でしたが、明らかにこれは完全に意味があります。

問題を解決するには、CloudFront cnameのIISに追加のサイトバインディングを追加するだけでした。

関連する問題