web-dev-qa-db-ja.com

大規模なDrupalサイトのサーバーファームのセットアップ

私は大規模なDrupal(Pressflow)サイトをセットアップしていますが、これが私の現在の計画です。私は行って、露骨に愚かなことをしましたか?大規模なマルチサーバーをホストした経験はありますか= Drupalこのようなインストール?

Infrastructure

6
ceejayoz

HAワニスクラスターを配信するために、HAProxyの背後にワニスノードのペアを配置したいと思います。

HAProxyを必要とせずに、2つ以上のワニスノードだけを簡単に作成できますが、ロードバランシングできるのはHTTPトラフィックのみです。少なくともHAProxyには、TCPロードバランサーもあります。

ネットワークのエッジはどのように見えると思いますか?ハードウェアファイアウォールのHAペアを用意する予定はありますか?エッジルーティング、BGP、および複数のトランジットが必要ですか?

考慮すべきもう1つのことは、ファイルサーバーがどのように機能するかです。 GlusterFSやMogileFSなどのストレージサーバーを使用して、ファイルサーバーのペアを用意することでおそらくメリットが得られるでしょう。これにより、インフラストラクチャ全体で冗長性を確保できます。

複数のMemcachedノードを追加することも簡単で、トラフィックの急増やハードウェア障害に対する冗長性と回復力が向上します。

特にトラフィックが多いと予想される場合は、コンテンツのフロントエンド配信を最適化するための手順を実行するようにしてください。すべてのメディアをメディアドメイン、理想的には次のようなCookieのないドメインに保持します http://blog.stackoverflow.com/2009/08/a-few-speed-improvements/ sstatic.net

また、CSSや変更されないJSなどの静的コンテンツをキャッシュするためにCDNの使用を検討することもできます。このマルチレベルキャッシュインフラストラクチャは、スラッシュドット効果を均等にし、障害に対する回復力を高めます。これは、ブラウザリクエストの大部分が静的コンテンツに対するものであり、リクエスターに最も近いCDNのPoPから効果的に提供できるためです。複数のレイヤー(ブラウザー、CDN、ワニス、Memcache)でキャッシュすることのその他の利点は、しばらくすると、すべてが複数の場所で複数回キャッシュされることです。これにより、障害に対する回復力が得られます。

大規模なdrupalサイトは、大規模なサイトとまったく同じです。ネットワークのすべてのレイヤーに複数レベルの冗長性があることを確認してください。

実際のサーバーの仕様については、ワニスノードに8Gを超えるRAMが必要になる可能性があります。

ロードバランサーボックスにIntelサーバーNICを配置し、ネットワークのコアにCiscoまたはHPProcurveスイッチを使用することをお勧めします。

データベースノードは、速度を上げるために15k SASディスクを備えた高速マルチプロセッササーバーである必要があります。冗長性を確保するために、4つ以上のディスクをRAID10アレイに配置します。

共有ホスティング環境でこれを行うことはお勧めしません。専用サーバーでもかまいませんが、念のため、キャリアニュートラルデータセンターで1/4ラックを指定します。このようにして、サーバーの実際の構成と管理に最大限の自由を得ることができます。

追加:

あなたは絶対にApacheを実行する必要がありますか?

Cookielessドメインでメディアファイルをホストしているサーバーの場合、軽量のHTTPサーバーからこれらをホストする方がよいでしょう。Nginxはこのための素晴らしいソリューションです。 ApacheはおそらくDrupal自体のホスティングに適していますが、たとえばNginxやFastCGIを使用できなかった本当の理由はありません。

6
Tom O'Connor

言及する価値のあることは、httpsの使用を計画している場合、https接続を処理するためにロードバランサーの前に何かが必要なことです。ワニスがそれを処理できるかどうかはわかりませんが、そのジョブにはnginxまたはstunnelのいずれかを使用することをお勧めします。

1
fim

別のファイルサーバーをどのように実装する予定か尋ねてもいいですか?これは私が本当に求めているものですが、標準のdrupalはこれをサポートしていないようです。

0
adam