私は2つのサーバー(両方とも公的にアクセス可能)を持っています。最初のものは画像保管サーバーです。 2つ目は、画像ストレージサーバ上の画像を指すリンク(node.jsで書かれた小さなスクリプト)を生成します。リバースプロキシとリダイレクトvsフェッチURL
画像保管サーバーから写真をロードする必要があるフロントエンドWebページがあります。これを行うには、リンクを取得するために「リンク生成」サーバーに連絡する必要があります。
私はこれを行うことを考えています3通りの方法があります。ブラウザがロードしようとしないように
ストア
data-src
タグで画像IDデータ<img>
の一部ではなく、src
タグとしては、イメージとして。次に、いくつかのjavascriptがイメージIDでリンク生成サーバーにpingを実行し、実際のイメージリンクを取得して、src
タグに配置します。リンクをテキストとして返すのではなく、適切な画像リンクにリダイレクトするようにして、画像IDを持つ画像生成サーバへのリンクを
src
タグに置くことができます。ブラウザは、リダイレクト。 (私はイメージがリダイレクトによって解決できると仮定していますか?)リバースプロキシにリバースプロキシを作成して、結果のイメージ自体をロードし、リンクをテキストとして返す代わりにイメージを返すようにします。同様に、画像IDを持つ画像生成サーバーへのリンクは
src
タグに配置され、画像を解決するために特別なJavaScriptは必要ありません。
私の質問は:は、画像の読み込み速度と、「キャッシュ・能力」の面で他よりも望ましいこれらのいずれかいますか?これまでは、リダイレクトメソッドがきれいで、特別なjavascriptを必要としないので、リダイレクトメソッドがより望ましいと思っています。しかし、このような方法では(ブラウザがリダイレクトを解決して最終的なイメージリンクを実際に取得するため、後でページを再ロードするために、最終イメージをブラウザにキャッシュできないでしょうか?
ありがとうございました!
興味深いことに、画像保管サービスはPythonで書かれており、リンク生成サービスはnode.jsにあります。私はそれらを別々にしておきたいと思う。リダイレクトとは逆のリバースプロキシを使用すると、パフォーマンス上のメリットが得られるのはなぜですか? 1日の終わりに、2つのhttpリクエストがいずれかの方法で行われています。クライアントとリンクジェネレータサーバ(リバースプロキシ)またはクライアントのいずれか(リダイレクト用)。 – abagshaw
あなたは正しいです。私は、リバースプロキシを使用する代わりに、2つの画像アプリを1つのアプリに統合することを指していました。私はあなたが彼らを別々にしておきたいと思っています。ブラウザ・サーバーのHTTPリクエストは、通常、サーバー・サーバーのHTTPリクエストよりも遅いという点に関係なく、パフォーマンスについて考慮する必要があります。ブラウザは一般的にネットワーク接続が遅いため、通常は同じデータセンターでホストされている場合は、サーバーの接続が高速になります。 –