2

私のウェブサイトは成長しています。すべての機能を単一のサーバー コピーで実行するのではなく、機能セットを異なるサーバー グループに分割する必要があります。Windows ネットワーク負荷分散セットアップに 8 つの同一のサーバーがあります。

問題は、URL スペースを同じに保つ必要があることです。実行可能な解決策は何ですか?機能セットのために新しいドメインを開始したくありません。URL ベースの書き換え/ルーティング機能 (?!?) を備えたある種のリバース プロキシを考えています。ソフトウェアまたはハードウェアに関する推奨事項はありますか? これは、必要な機能を備えていないため、WNLB セットアップを置き換える予定です。

4

2 に答える 2

1

実際、ロード バランシングを実装するためのソリューションがいくつかあります。

  1. DNS ラウンドロビン
  2. DNS 負荷分散 (lbnamed を使用)
  3. プロキシ ラウンドロビン
  4. ハードウェア/TCP ラウンドロビン

1) と 2) はここではオプションではないことを理解しました... お金があり、本当に高いパフォーマンスが必要な場合は、4) を選択してください。それ以外の場合は、3) に進みます。

Proxy Round-Robin の場合も、Apache mod_rewriteApache mod_proxySquid (そして、私が知らない他の多くのソリューション) など、いくつかのソリューションが可能です。

  • 「愚かな」負荷分散については、Apache mod_rewrite のURL Rewriting Guide に例があります(プロキシ スループット ラウンド ロビンのセクションを参照)。

  • Apache mod_proxy はクライアントをインターネットに接続するためのプロキシとして機能しますが、通常は URL を別のサーバーにリダイレクトするためのリバース プロキシとして使用されます。キャッシュ機能はありません (ただし、mod_cache および mod_rewrite で使用できます...)。

  • Squid はプロキシ キャッシュであり、通常はクライアントをインターネットに接続するために使用されます。ただし、リバース プロキシとして使用して、要求をキャッシュし、コンテンツ配信を高速化するように構成することもできます。

ご覧のとおり、それらのいずれかを選択することは、何をどのようにプロキシするかによって異なります。あなたの場合、Linuxでキャッシングが必要な場合は、Apache mod_proxyまたはSquidを実行することを検討します(オプションの場合)。

ハードウェアに関しては、私は専門家ではありませんが、「小規模」から「中規模」の専用サーバーで十分だと思います。すべてのリクエストがこのマシンを通過することを忘れないでください。そのため、そのサイジングはトラフィックに大きく依存しますが、これはまともなようです。これには、実際のデータを掘り下げる必要があるかもしれません。

于 2009-03-09T22:18:51.133 に答える
0

サーバーが 8 台ある場合は、そのうちの 7 台を使用して作業負荷を共有し、1 台のフロントエンド サーバーを使用してプロキシとして機能させることをお勧めします。

フロントエンド サーバーで Apache を実行し、mod_proxy を使用して各 HTTP 要求を 7 つのバックエンド サーバーのいずれかに委任できます。必要に応じて、着信 URL に基づいて作業を委任するように mod_proxy を設定できます。たとえば、1 つのサーバーでビデオを提供し、2 つのサーバーでブログ エントリを提供し、残りのサーバーでその他の処理を行うことができます。

フロントエンド サーバーは非常に軽く、Apache を実行するだけで済みます。Squid または Apache の mod_cache を使用して、このフロント サーバーに静的コンテンツをキャッシュすることもできます。これにより、画像、js、css、およびその他の静的コンテンツの要求が、キャッシュされるとバックエンド 7 サーバーにヒットすることはありません。

編集:パスカルのコメントを読んだところ、彼は同じことを提案しています。私は彼を改造します+1

于 2009-03-12T20:34:40.177 に答える