3

TYPO3 ベースの Web サイトを次のパラメータで提供するように顧客から依頼されました: - 少量のコンテンツ (約 50 ページ) - 変更頻度がほとんどない - 1 日平均約 95% の可用性 - ページの 20% が制限されています。ログイン後に利用可能 - 派手なtypo3拡張機能などの要件はありません(Typo3コアのみ) - 中規模のページ - 限られたデジタルアセット(画像など)のみが含まれています

最大 1000 人の同時ユーザーにサービスを提供するインフラストラクチャを構築する必要があります。平均思考時間が 30 秒であると仮定します。これにより、1 秒あたり 33 のリクエストが発生します。

インフラストラクチャはどのように見えるでしょうか?

システムのスケーリングは、システムの実装に応じて非常に個別のタスクであり、テストが必要であることはわかっていますが、どこから開始するかを最初に示す必要があります (単一サーバー、コンポーネントを別のサーバーに分離する、...)。

何か案が?

4

4 に答える 4

2

より簡単な解決策はEXT:nc_staticfilecacheです。これにより、静的ページがHTMLとして保存され、Webサーバーが書き換えルール(Apacheの場合はmod_rewriteを介して)を介して静的ページを自動的に配信します。これは静的コンテンツに対して非常にうまく機能し、すでに100req/sを超えることができるはずです。

さらに便利な方法は、VarnishCacheを使用することです。Varnishは、Webサイトのコンテンツをメモリに保持し、専用のホストで実行できるリバースプロキシサーバーです。正しく構成すると(正しいキャッシュヘッダーを送信してください!)、回線速度(数百万要求/秒)が得られます。TYPO3拡張moc_varnishもあります。これは、例えば、TYPO3でページが変更されたときにワニスキャッシュをパージします。また、エッジサイドインクルードのサポートは、例えばTYPO3からユーザー固有のデータのみを取得し、ニスキャッシュからページの静的部分を使用するために存在します(「ウェルカムユーザーFooバー」を除くすべて..;))。

前述のとおり、アセットの正しいキャッシュヘッダー(有効期限など)を構成することを忘れないでください。これにより、Webサーバーの負荷がすでにある程度軽減されます。

于 2012-01-31T14:01:14.570 に答える
2

それはかなり可能です、すでにこのようなものを作っています。8 GB 以上の RAM を搭載した専用サーバーが少なくとも 1 台必要です。

インフラストラクチャについて話している場合、最小限の組み合わせは次のとおりです。

  • フロント/ロード バランシング用の nginx/Varnish
  • アパッチ HTTP サーバー
  • MySQL はスタンドアロン サーバー上にある場合もあれば、クラスター化されている場合もあります。

このような場合、パフォーマンスの最適化は非常に重要です。

さらに読むためのいくつかのリンク:

于 2012-01-31T20:56:31.890 に答える
0

これを単一の専用サーバー (または適切に指定された VPS) に配置しますが、動的なものに集中できるように、すべての静的資産をサードパーティの CDN に保持することもできます。Typo3 についてはわかりませんが、このレベルの使用ではデータベースを同じサーバーに置くことができなかった理由がわかりません。さまざまな種類のキャッシュ オプションがあるはずです。または、クラウドサーバーを検討してください。さらに力が必要な場合は、リソースを追加してください.

編集:プロキシサーバーなど、スケーラブルなアーキテクチャをまだ構築するのは良い考えではないと思います。速度が遅く、1 台のマシンでは対応できないことがわかった場合は、その時点でスケールアップしてください。予想されるトラフィックを考えると、はるかに単純なアーキテクチャでやり遂げることができると私は考えています。

于 2012-01-31T13:09:30.287 に答える
0

仮想サーバーまたは ksm と、適切な mysql および php 構成を調べます。ksm がある場合は、Linux を微調整し、トラフィック シェーピングに iptables を使用します。専用のルート サーバーは便利ですが、高価です。次に、eaccellerator と memcache を備えた nginx または lighttpd Web サーバーの使用を検討します。それでも問題が解決しない場合は、最適化フラグを使用して php と mysql をコンパイルするか、Intel C Compiler でコンパイルしてみます。ICC は、gcc よりも C コードを最適化できます。サーバーに多くの RAM がある場合は、RAM ディスクを使用します。

于 2012-01-31T14:57:17.787 に答える