0

私はウェブサイトをApacheを実行しているEC2サーバーにホストしています。すべてうまく動作します。Apacheを使用してEC2サーバーで自分のWebサイトをホストするにはどうしたらいいですか?

問題は、自分のイメージがS3上にホストされていて(CloudFrontにキャッシュされている可能性があります)、EC2サーバーではなく、両方のドメイン/サブドメインでアクセスできるようにすることです。

たとえば、私のウェブサイトがwww.helloworld.comであるとします。 www.helloworld.com/images/foobar.pngで画像にアクセスできるようにしたい。私はfoobar.pngがS3でホストされ、私のEC2サーバーではないと思っています。これをやり遂げるにはどうすればいいですか?

私はAWSコンソールで実行できますか、またはApacheで使用できる書き換えルールはありますか?私は常にS3から画像をダウンロードしてユーザーに転送するコントローラを設定することができますが、これは私には間違っているようです。

答えて

1

このため、ロードバランサ/プロキシを前面に配置してすべての要求を傍受し、それに応じてディスパッチする必要があります。とにかく(可用性の理由から)悪い考えではないかもしれませんが、イメージの別のホスト名は問題ではありません(ユーザーがそれらのURLを見たり入力する必要はありません)。

+0

私は別のサブドメインに画像を置くことが大好きですが、それはオプションではありません。すべてのサーバーでホストされているイメージを持つレガシーサイトを書き換え、既存のURLに基​​づいてイメージにアクセスする外部クライアントが存在するため、同じURLからアクセスできる必要があります。 – Matt

+1

次に、プロキシは最善のアプローチのようです。または、EC2インスタンスからS3 URLにリダイレクトすることもできます。追加のHTTPラウンドトリップが発生しますが、「S3からダウンロードしてユーザーに転送する」より優れています(セットアップも非常に簡単です)。 – Thilo

+0

申し訳ありませんが、試してみてください。私の希望は、ブラウザのウィンドウでURLが同じであるということでした。リダイレクトの場合、URLは変更されませんか? – Matt

0

CloudFrontを使用すると、CloudFrontが最初のリクエストを受信し、そのパスに基づいてリクエストをEC2インスタンスまたはS3バケットに転送できます。例えば

、あなたはセットアップには、次のことができます:

  • /images/下にパスするとS3の起源を使用して、
  • (他のすべてのための)デフォルトは、あなたのEC2に行くだろうとA CloudFrontの行動インスタンス起点。
+0

ありがとうございます。これは、これがうまくいくように思えます。 – Matt

関連する問題