問題タブ [web-farm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-farm - IIS 7.5 サーバー ファームはドメイン上にある必要がありますか? 2008R
バックエンドに SQL DB を備えた Server 2008 R IIS 7.5 を使用しています。現時点では、システムは負荷分散ファームで構成された 3 台のサーバーで正常に動作しており、SQL DB にデータを通信しています。これらのサーバーはすべて、共通の管理者とパスワードを使用して、独自のサブネット上に独立しています。問題は、1 つのサーバーを PDC にして独自のドメインを作成し、残りの記憶サーバーをドメインに参加させることに利点があるかどうかです。
asp.net - Web ファームでの Web アプリケーションのローリング展開
フェデレーション データベースを備えたサーバー ファームにデプロイされた SQL サーバーを備えた asp.net Web アプリケーションがあります。ストアド プロシージャ (準備済みの sql ステートメントとは対照的に) と inproc セッションを使用します。高可用性を実現する一環として (少なくとも、制御された一連の変更を含むサービス パックの場合)、ファームでローリング展開を使用する予定です。つまり、次のようにします。
- サーバーのグループをシャットダウンします
- これらのサーバーにアプリケーションをデプロイします
- これらのサーバーを立ち上げる
- 別のグループをシャットダウンします。すべてのグループに対して 1 ~ 3 を繰り返します。
これは、一部のユーザーがキックオフされることを意味しますが、アプリケーションは引き続き利用可能であり、メンテナンス ページを作成する必要はありません。
簡単なのは Web アプリケーションをデプロイすることですが、難しいのは、ストアド プロシージャに変更があった場合 (たとえば、新しいパラメーターが追加された場合) です。両方のバージョンのストアド プロシージャが必要になる時点があります (既存のものと展開されている新しいもの)。
ストアド プロシージャの 4 つのオプションを検討しました。
- リリースにストアド プロシージャの変更がある場合は、ローリング展開を使用しないでください
- ローリング展開がリリースで使用されている場合、コードの重複を意味する場合でも、新しいストアド プロシージャのみが許可されます。
- アプリ層にストアド プロシージャのバージョン管理といくつかのフレームワーク コンポーネントを導入して、呼び出される sproc にバージョン番号を自動的に追加します。
- 既存のストアド プロシージャを上書きし、一部のストアド プロシージャの呼び出しが失敗するようにします。
すべてのアプローチには長所と短所があり、これらのうち 3) が最も実行可能ですが、最も複雑でもあります。どちらをお勧めしますか?このシナリオを処理するための SQL Server のトリックはありますか? 他のアプローチはありますか?
asp.net - Asp.Net の Web ファーム エラー
最近、自分の Web サイトで何かをしようとすると、エラー メッセージが表示されます。ランダムにのみ発生します(特定のページではありません)。
エラーは以下のとおりです。
「/」アプリケーションでサーバー エラーが発生しました。
ビュースタット MAC の検証に失敗しました。このアプリケーションが Web ファームまたはクラスターによってホストされている場合は、構成で同じ validationKey と検証アルゴリズムが指定されていることを確認してください。自動生成はクラスターでは使用できません。」
問題を解決するためにあなたの助けが必要です。
asp.net - Web ファーム環境での ASP.NET Web サイトのデータ キャッシュ
私はいくつかの検索を行いましたが、特定の答えは見つかりませんでした。とにかく、ほとんどの中規模の ASP.NET ベースの Web サイトは、Web ファーム環境で実行しているときに、異なるページで同じデータを常にデータベース検索する必要がないように、どのようにデータをキャッシュするのか疑問に思っていました。SQLサーバーキャッシュを使用できることは承知していますが、私にとっては、キャッシュの目的全体が無効になります。専用サーバーを使用してキャッシュ (場合によってはセッション データも) を共有したい場合、ほとんどのサイトはこれに何を使用していますか? 私は検索を行い、実装に関して多くの「推測」を得ましたが、非常に多くの ASP.NET Web サイトがあることを考えると、これを行うための標準的な方法がないと信じるのは非常に困難です。
私はそれがうまくいくように見えるAppFabricを認識していますが、Windowsサーバー2008以降でのみ実行され、現在2003を使用しています。また、NCacheをチェックアウトしましたが、少し高価なようです.
誰かが彼らのために働いた解決策を実装しましたか? 1000 人以上のユーザーが同時にサイトにアクセスすると、データベースの検索が非常に遅くなることがあります。
前もって感謝します!
linq-to-sql - Web ファームの ASP.NET MVC2 - トラフィックが多く、ページの読み込みが遅い
Web ファームでホストされている MVC2 + Linq2SQL + MS SQL SERVER 2008 で記述された Web アプリケーションがあります。ほとんどstackoverflow.comのように
4 つの IIS7 + 1 つの SQL SERVER 2008 を MS NLB で負荷分散しています。
静的コンテンツは、外部キャッシュ プロバイダーである Akamai によってキャッシュされ、リクエストの 86% が削減されます。
各 Web サーバーには 32 GB の RAM と 4 つのクアッド コア CPU があるため、フロントエンドには 64 個のコアがあります。
セッション状態をテーブルに保存します。
中程度のトラフィック (ページ ロード = 0.2 秒) では問題なく動作しますが、同社はテレビ広告を行っており、これらの広告の間、トラフィックは 20 ~ 30 秒以内に最大 20,000 人のユーザーにヒットします。
この瞬間、ページの速度が 8 ~ 10 秒に低下します。ただし、CPU とメモリの使用率は、どのマシンでも 40% に達しません。
データセンターの帯域幅が限界の半分に達していません。
遅いページは、1 ~ 2 個のテーブルのみから最大 10 レコードの単純な SELECT からデータを生成します。
明らかにどこかにボトルネックがあり、その場所を突き止めようとしています。
どこで問題を探すべきか、誰かにアドバイスがありますか?
.net - WIFを使用するいくつかのeコマースWebサイトの.NETWebファームにSSOを実装しますか?
かなり複雑な質問だと思うので、ここで明確にするために最善を尽くします。
シングルサインオン(SSO)ソリューションを探しています。私はそこにある多くのオプションを知っていますが、それらが満たす必要のある基準を追加するので、それらのほとんどを除外しました。基準は次のとおりです。
1.)SSOを既存の「システム」に追加する必要があります。
2.)既存の「システム」は「X」個のウェブサイトで構成されています。
3.)「x」のWebサイトはすべてeコマースです。
4.)WebサイトはすべてY社が所有しており、システムの95%は社内で構築されています。
5.)「X」個のWebサイトはそれぞれ同じWebファームにあります。
6.)すべてのWebサイトは、次のコンポーネントを共有しています。
- DAL(データアクセス層)
- データベース(カート、注文、ユーザー、在庫など...)
- 認証(WebFormsとMVCの両方でForms Auth)。
7.)現在の環境が機能するために、マシンキーはすでに負荷分散されたサーバー間で同期されています(そしてしばらくの間同期されています)。8.)トラフィック量が 非常に
多い
ため、高可用性と安定性が必要です。
これらすべての基準により、既存のメンバーシップ認証サービスで使用するWIFとカスタムSTSの道を歩むことができました。OpenIDやその他のオープンソースソリューションのようなものはすべて、企業間の相互運用性に傾いているようです。これは必要ではないか、望まれていません。理想的なソリューションは100%内部であり、ユーザーがWebサイト「1」にログインし、やりたいことを何でもしてから、Webサイト「2」(ロードバランサーの背後でホストされ、場合によっては同じ場所でもホストされる)にアクセスできるようにします。ユーザーとしてのWebサーバーはWebサイト「1」用であり、すでにログインしています。
これが私が調べた代替方法のリストとそれらを除外する対応する理由です(またはこれらの代替方法のいくつかを再検討する必要がありますか?)。
- OpenID:これはいくつかの理由で除外されました。主な理由は、私の組織が「社内」SSOを探しており、外部Webサイトとの統合または外部Webサイトで使用されるIDシステムが望ましくないためです。
- CAS:ほとんどの場合、これもまともな代替手段のようです。使用するテクノロジー(Java、Apache、Mavenなど)は、理解、実装、サポート、および拡張(主に.NETショップ)するために追加の労力と費用が必要になるため、最終的には除外されました。
- OAuth:Webサービスを介して保護されたデータを公開することを目的としているようです。完全にカスタム(http://www.codeproject.com/KB/aspnet/CrossDomainSSOModel.aspx):完全にカスタムのアプローチでは、実装時間が長すぎる可能性があり、この方法ではセキュリティがより重要になります。
- DotNetOpenAuth:依存/OpenIDに基づく。
したがって、問題は次のとおりです。ロードバランサーとWebサイト間で既に共有されているユーザーアカウントデータを考慮して、WIFは既存の環境で機能しますか、それともより良いアプローチがありますか?
説明が必要な場合はお知らせください。
編集:
私が達成しようとしていること(または私が行った研究を踏まえて達成しようとしていると思うこと)を明確にするために、次のようになります。
現在のセットアップ(ドロップボックスでホストされ
ているJPEG)必要なセットアップ(ドロップボックスでホストされているJPEG)
cpanel - Microsoft Windows サーバーの Cpanel/WHM ソリューション
Microsoft は Linux の Cpanel/Whm に似た Web ホスティング ソリューションを提供していますか? 私が本当に望んでいるのは、vps やサーバーへの直接アクセスを提供する代わりに、組織の開発者にサイトを管理するための cpanel のようなツールを提供する強力なサーバーを構築することです。
azure - Azure/Webファーム対応のSecurityTokenCache
私たちのサイトは認証にADFSを使用しています。すべてのリクエストでCookieのペイロードを減らすために、IsSessionModeをオンにしています(ダイエットでのfedauth Cookieを参照)。
負荷分散された環境でこれを機能させるために最後に行う必要があるのは、ファーム対応のSecurityTokenCacheを実装することです。実装は非常に簡単なようです。私は主に、SecurityTokenCacheKeyメソッドとTryGetAllEntriesメソッドおよびTryRemoveAllEntriesメソッドを処理するときに考慮すべき落とし穴があるかどうかを調べることに関心があります(SecurityTokenCacheKeyにはEqualsメソッドとGetHashCodeメソッドのカスタム実装があります)。
誰かがこれの例を持っていますか?AppFabricをバッキングストアとして使用することを計画していますが、データベーステーブル、Azureテーブルストレージなどの永続ストアを使用した例が役立ちます。
これが私が検索したいくつかの場所です:
- Hervey WilsonのPDC09セッションでは、DatabaseSecurityTokenCacheを使用します。彼のセッションのサンプルコードを見つけることができませんでした。
- VittorioBertocciの優れた本「ProgrammingWindowsIdentityFoundation」の192ページで、彼はAzure対応のSecurityTokenCacheのサンプル実装を本のWebサイトにアップロードすることに言及しています。私もこのサンプルを見つけることができませんでした。
ありがとう!
jd
2012年3月16日更新Vittorioのブログは、新しい.net4.5のものを使用したサンプルにリンクしています。
ClaimsAwareWebFarm このサンプルは、多くの皆さんから寄せられたフィードバックへの回答です。大きなCookieを交換する代わりに、参照によってセッションを使用できるように、(tokenreplycacheではなく)ファーム対応のセッションキャッシュを示すサンプルが必要でした。そして、あなたは農場でクッキーを保護するより簡単な方法を求めました。
asp.net - 静的リソースのブラウザキャッシュを無効にする
静的リソースのキャッシュに取り組んでいます。多くの場合、スクリプトやスタイルが変更されると、ブラウザがファイルのキャッシュを無効にする時期であると判断するまで、しばらくの間問題が発生します。
すべてのスクリプトタグとスタイルタグの最後に値を挿入して、ブラウザに実際のリクエストをサーバーに送信させることで、この問題を解決したいと考えています。この値は、変更するコマンドが発行されるまで、複数のサーバー間で同じままである必要があります。複数のサーバー間でこの値を生成/変更するにはどうすればよいですか?