4

当社は現在、2 台の Windows 2003 サーバー (Web サーバーと MSSQL 8 データベース サーバー) を実行しています。Web ファームのセットアップで、冗長性と可用性を目的として、さらに 2 台のサーバーを追加する予定です。私たちの Web サイトは主に ASP.NET であり、PHP サイトもいくつかありますが、これらは主に DB を持たない静的なものです。

このプロセスを経験した人で、注意すべき点やその他の点はありますか? また、Windows Server 2008 を使用すると、この状況でさらに利点が得られるでしょうか (そのため、上司にアップグレードするよう説得できます :) ?

ありがとう。

4

6 に答える 6

4

もう 1 つ注目すべき点は、展開計画です。残念ながら、展開計画は見過ごされたり、過小評価されたりしているようです。複数のノードにデプロイする場合、論理的な方法でデプロイおよびテストする方法を考慮する必要があることに注意してください。

たとえば、ファームに 4 つのノードがあるとします。クラスターから 2 つ取り出して更新とテストを行い、残りの 2 つを交換して繰り返しますか? 現在の展開プロセスが提供する回答に適合するかどうかを判断します。X 倍のサーバーがあるからといって、X 倍の作業量を実行したい、または実行する必要があるという意味ではありません。

会話のキャッシングの部分を少しだけ振り返ってみましょう。分散キャッシング ソリューションを検討する必要があります。データを事前にキャッシュし、キャッシュの削除でコールバックを使用している場合、注意しないと、データベースに非常に大きな打撃を与える可能性があります。また、分散キャッシング ソリューションの多くは、ある程度のセッション状態管理も提供しています。私は Microsoft の Velocity プロジェクトを非常に楽しんでいますが、これは 2 回目の CTP リリースであり、製品化の準備ができていません。

于 2008-11-23T03:07:28.430 に答える
4

動的負荷分散を行っている場合 (つまり、最初の要求はサーバー X に送信されますが、次の要求はサーバー Y または Z に送信される可能性があります)、インプロセス セッションが機能しないことがわかります。そのため、スティッキー セッション (ロード バランサーは常にサーバー X に私 (= 私のセッション) を送信します) またはアウト プロセス セッション (つまり、SQL サーバーに保存されます) のいずれかが必要になります。

于 2008-11-22T18:19:24.313 に答える
4

Michael が言うように、セッションを管理する必要があります。理想的には、それをリーンにして、プロセスから外して保管します。キャッシュの使用方法によっては同様の課題が発生するため、asp キャッシュのみを使用する場合は、より堅牢なキャッシュ テクノロジを検討することに関心があるかもしれません。

web.config でマシン キーや検証などを忘れないでください。machineKeys は、サーバー全体で一貫している必要があります。

IIS7 をよく読んで、上司に見せびらかす良い例をいくつか選んでください。

Web ファームは、見過ごされてはならない展開の機会と課題を提供します。

上記のセットアップに特定の経験がなくても、この種の一般的な動きには。段階的にアプローチすることをお勧めします。つまり、まず Windows 2008 に移行してからファームします。

于 2008-11-22T18:26:23.410 に答える
1

セッションの処理には ASP.NET State Server を使用します。これは、Windows Server 2003/2008 では無料です。

次に、マシン キーが同じであることを確認する必要があります (web.config ファイルの設定)。

次に、各サイトを手動でオフラインにします (app.offline またはマジック ファイルの名前を使用)。または、IIS を使用して、サイトをオフにし、オフライン サイトを「オン」にすることもできます。

それはそれについてです。分散キャッシングについて心配することもできますが、それはかなりハードコアなことです。ASP.NET を使用すると、デフォルトの出力キャッシュから多くの効果を得ることができます。分散キャッシングを行う場合は、複雑さ (および一部の製品ではコスト) を掘り下げる前に、そこから始めます。

スティッキー セッションを行わない F5 ロード バランサーを使用しているため、セッションを維持する必要があります。これが、ASP.NET 状態サーバーを使用している理由です。

于 2008-11-30T10:45:30.220 に答える
1

他のポスターで説明されているセッションの問題以外に、アプリがローカル ファイル システムに書き込んでいるかどうかという問題があります。ファイルがローカル PC 上にあると想定している場合、Web ファームにスケールアウトすると、アプリが壊れてしまいます。たとえば、アップロードされたファイルは、ヒットしたサーバーに応じて利用できる場合と利用できない場合があります。共有ドライブを指すようにパスを変更すると、これが修正されます。

于 2008-11-30T11:20:16.733 に答える
1

他の人が言ったことに加えて、Richard Campbell の (.NET Rocks! の) 製品を調べることを検討することをお勧めします。

http://www.strangeloopnetworks.com/

于 2008-11-22T19:51:26.640 に答える