10

私は静的なウェブサイトを提供するためにクラウドフロントディストリビューションを作成しました。 S3はオリジンサーバーです。 クラウドフロントURLにアクセスすると、S3の場所にリダイレクトされます。AWSクラウドフロントS3バケットにリダイレクト

test.telekha.in

d2s18t7gwlicql.cloudfront.net または それが https://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/dashboard

を示しているブラウザでは、私はhttps://test.telekha.in/#/dashboard

を期待しています、私はカールを通じてhttps://test.telekha.inにアクセスした場合、それは私を返します。 index.html文書

私がhttp://test.telekha.inにcurlでアクセスすると、

<html> 
<head><title>301 Moved Permanently</title></head> 
<body bgcolor="white"> 
<center><h1>301 Moved Permanently</h1></center> 
<hr><center>CloudFront</center> 
</body> 
</html> 

しかし、ブラウザでHTTPとHTTPSの両方がhttps://telekha-test-www.s3.ap-south-1.amazonaws.com/index.html#/

にリダイレクトされている私は、この問題を解決する方法を教えてください。

答えて

11

問題が見つかりました。これはクラウドフロント構成です。 Thisブログが私を助けました。

原点を定義しながら、私はS3バケットを直接選択しました。我々は、S3バケツのドメインに入る必要がありますtelekha-test-www.s3-website.ap-south-1.amazonaws.com

+0

S3 URLを使用して起点を設定すると、S3 URLとCF URLの両方を使用してコンテンツを利用できるようになりますが、これは望ましくない可能性があります。 – Kiril

7

あなたがこれを見ていると思うかどうかチェックする最初のことは、カールを実行することです以下のコマンドを入力します。 HTTP/1.1 307 Temporary Redirectを返すと、この問題が発生しています。

$ curl -I https://YOUR_CF_DOMAINNAME.cloudfront.net/ 

HTTP/1.1 307 Temporary Redirect 
Content-Type: application/xml 
Content-Length: 0 
Connection: keep-alive 
x-amz-bucket-region: ap-southeast-2 
Location: http://yourS3bucketname.s3-ap-southeast-2.amazonaws.com/ 
Date: Wed, 12 Jul 2017 00:20:27 GMT 
Server: AmazonS3 
Age: 1775 
X-Cache: Hit from cloudfront 
Via: 1.1 someid.cloudfront.net (CloudFront) 
X-Amz-Cf-Id: someguid== 

私はこの問題を発見された最良の説明は次のとおりです。

S3は、右領域にリクエストを送信するレコードとグローバルRESTエンドポイントの階層のDNS * .s3.amazonaws.comを更新バケットを作成してから短時間でバケットを作成し、CloudFrontはリクエストを適切な場所に送信するためにこれに依存しているようです。最初の更新が完了する前に、S3はリダイレクトを返し、CloudFrontはそのリダイレクトをブラウザに返します。この問題は、その後、それが必要、原因あなたがS3バケットを設定するときに発生する(100%明確ではないが、可能性が高いと思われる)S3バケット名の内部DNSの伝播に実際に考える〜michael-sqlbot

この問題を回避するには、Cloudfrontディストリビューションを設定する前にS3で公開Webサイトを設定し、docoを指定して、s3バケット名ではなくクラウドフロントの起点としてS3公開ウェブ名を設定します。

参考までに、私はS3バケット名とS3ウェブサイト名の両方をCloudfront起点として設定していますが、両方とも動作すると言えます。 (最終的に?)

参考文献:

0

これは、すべてが正しく設定されている場合は、しばらくして自分自身を修正するだけでタイミングの問題であるが判明。詳細については、this AWSフォーラムスレッドを参照してください。

現在受け入れられている回答とリンクblog articleは、S3バケットの静的なウェブサイトを有効にしてから、その静的なウェブサイトを指すようにCFの原点を変更することをお勧めします。このソリューションはリダイレクトの問題を解決しますが、S3 URLを使用するだけでなく、CF URLまたはカスタムCNAMEの両方を使用してウェブサイトを利用できるようになりました。

関連する問題