2016-06-30 8 views
4

私はS3起源のCloudFrontディストリビューションを持っています。私は、サイトのルートパスへのリクエストが異なる起点(webservice)を使用するような動作を作成したいと考えています。CloudFrontの動作で「/」のパスパターンを指定するにはどうすればよいですか?

は、理想的には私の行動は次のようになります。

  • "/" - Webサービスの起源
  • デフォルト(*) - S3バケット

しかし、上記の動作するようには思えません - ルートリクエストは最初の動作によって捕捉されません。

パスパターンを使用して何かを達成できる方法はありますか?

+0

私は '/'がそれをやると思いますが、私はテストします。テストすると、キャッシュされたレスポンスが表示されていないことを確認しました。もしそれがうまくいかないとすれば(それは*そうすべきだと思われますが)、あなたは逆を行うことができ、デフォルトの '*'動作をサイトサーバに送り、 '/?*'それ以外は '/'の後ろに1つ以上の文字ですべてをキャプチャする必要があるからです。 –

+0

いいえ - バケツのルートにページがないので、私はS3バケットで定義したエラーページを取得します(おそらくこのレスポンスはキャッシュされません)。私は言及すべきだった - 私は条件を逆転させ、デフォルトの振る舞いをwebserviceに行くアプローチを試みたが、それはどちらもうまくいかない。最初の振る舞いのパターンを "/ ??? *"のように指定しても、依然としてroot要求はその要求に捕らえられ、デフォルトの振る舞いにならない。 – Mike

+0

CloudFront [キャッシュエラーを発生](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HTTPStatusCodes.html)応答ヘッダーで 'Age:'ヘッダーを確認してください。それがある場合、CloudFrontがあなたが見ている応答をキャッシュしている時間(秒)です。 –

答えて

1

答えは、パスパターンが '/'のキャッシュビヘイビアがルートURLとのみ一致するように動作することです。この特定のケースでは、ユーザーは、動作パターンの前に一致するデフォルトのルートオブジェクトセットも持っていました。 '/'パターンを使用してルートURLにキャッシュ動作を定義する場合は、デフォルトのルートオブジェクトを削除する必要があります。

関連する問題