DrupalはNginxで動く?

カテゴリ チューニング コアバージョン 7.26 関連モジュール PHP

特にDrupal7になってから、サイトの表示が重くなってますが、消費メモリ面の優位性や、リバースプロキシ機能を持つNginxでDrupal7は動作するでしょうか?

コメント

ユーザー actbrain の写真

設定面で試行錯誤がありましたが、動作はします。
最近、あるきっかけがあって、NginxでDrupal7を動作させてみました。

AWS(Tokyo):m1.mediamにて、
(Apache2.0+mod_php+Apc+rds-db.m1.medium+Drupal7.23)で動作させてみました。
の環境で動作しているシステムを
AWS(Tokyo):t1.micro~c3.largeインスタンスにて、
(Nginx1.4+Fastcgi+Apc+Mysql5.6+Drupal7.23)で動作させてみました。
※今回の調査の目的は、
・Nginxにより「ページビューをさばく?」のではなく
・Nginxにより「Drupal7は軽くなる?」の方でしたので
下記検証は、体感速度のみで、abテストなどは行っていません。


Type |ECU|Memory|Strage...
t.micro|変数| 0.615 |EBS のみ $0.027 /1 時間

・Mysql5.6では、さすがにメモリ不足のためSwapを使うようになり、動作はするものの、かえって遅くなるようになりました。
・Mysql5.1にしたら、なんとかSwapなしで動作しました。Drupal7は通常、メモリ2Gないと不安なのですが、0.6Gで動作するというのはNginxメモリ効果です。
・体感速度はオリジナルの2割減といったところでした。


Type    |ECU|Memory|Strage...
m1.medium|  2 | 3.75 |1 x 410 $0.175 /1 時間

・オリジナルと同インスタンスという事もありストレスなく動作しました。
・体感速度はオリジナルの2割減といったところでした。
※t.microにおけるMysql5.0での動作とほぼ同様の体感速度は意外でした。


Type  |ECU|Memory|Strage...
m1.large| 4 | 7.5  | 2 x 420 $0.350 /1 時間

・オリジナルと同インスタンスという事もありストレスなく動作しました。
・体感速度はオリジナルの2割減といったところでした。
※Mysql等、キャッシュメモリ調整等でチューニングしてないので、m1.mediumとECUの差のみという事ですが、負荷は掛っていないので、結果的には同様です。


Type  |ECU|Memory|Strage...
c3.large | 7 | 3.75 |2 x 16 SSD  $0.192 /1 時間

・MySQLも含めSSDです。
・体感速度はオリジナルの5割減となりました。

総括:
閲覧負荷をかけていないので基本的には t.micro~c3.largeに至るまで、「1ECU+各々の搭載メモリ」での動作したのだと思われます。
そのため、t.microで実メモリ不足になった以外は総じて同結果。
一点、SSDによる効果が相当のものであるという内容です。
※Drupalは標準ではキャッシュ、セッション、ログの保存場所がデータベースなので、標準状態でも SSD化するだけで相当な効果がりそうです。
※Nginx設定に関してはリバースプロキシ部分の設定は行っていないため、静的ページ対応のキャッシュ設定を行えば相当なパフォーマンス向上を見込める目途がたちました。

ページ

OTHER FAQ

Drupal開発・運用の疑問/質問の答えはここに

無料ユーザー登録すると質問できます。

カテゴリ Core Ver. 関連モジュール タイトル降順で並び替える
フォーム 7.38 Webform Webformでタクソノミーを参照したい
コンテンツの作成 7.38 Webform Webformでテーブル形式にしたい
フォーム 7.15 Webform Webformで確認画面
フォーム 8.7.x Webform WebformのCheckboxの要素にて表記の変更
フォーム 7.15 Webform WebformのEntity Translation
フォーム 7.15 Webform Template Webformを複写したい
サイトの構築 8.3x Webform Webformモジュール メールアドレスの入力ミス確認
フォーム 7.38 Webform Webformモジュールをアップデートしたら「このフィールドを入力してください」
PHP 8.9.x PHP YamlをPHP配列にする方法
サイトの環境設定 8.6.x Simhony Yaml yamlファイルを読み込む方法
コンテンツの作成 8.4x archiver zipファイル圧縮・解凍する方法
パフォーマンス 7.34 Server お金をかけないで冗長化するには
サイトの環境設定 7.59 さくらのレンタルサーバー php Options さくらのレンタルサーバーで パブリック/プライベートディレクトリにファイルが書き込まれないとき
コンテンツの作成 8.4x Download とにかく何でもコンテンツをダウンロードさせる方法
ブロック 7.15 Views ひとつのViewsをページやブックページ中で再利用する方法は?
言語 7.15 Language まだ翻訳されていない英語文、どうにかならない?
Commerce 8.6.x Commerce Payment Gateway オリジナルCommerce決済モジュール(Offsite)で決済サーバーへのPOST時のエンコードを変更する方法
token 7.34 token オリジナルモジュールからtokenを提供する方法を教えて下さい。
コンテンツの管理 8.4x Action カスタムアクションを作成する方法
Token 8.4x Token カスタムモジュールからtokenを提供する方法(drupal8版)

ページ