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.15 Devel 簡単に指定ユーザにログインしなおす方法
コンテンツの管理 8.9.x Dialog Modal Canvas drupal 8 の標準機能のダイアログ/ポップアップを表示する方法
Messages 7.34 Disable messages 標準(コア)が表示する特定のメッセージ非表示にしたい
アップデート 7.28 DisableMessages モジュールのアップデートガイダンスを非表示にしたい
コンテンツの作成 8.9.x Display sweet, Views, Twig Tweak, Views field formatter テーマに頼らず コンテンツのフィールドとしてViewsを埋め込み表示する方法
アップデート 7.34 Distribution(Commerce Kickstart) drushでcommerce_kickstartのアップデートに失敗する
コンテンツの作成 8.4x Download とにかく何でもコンテンツをダウンロードさせる方法
アップデート 7.50 Download count DOWNLOAD MODULEページでダウンロードが失敗することがある
サイトの構築 7.59 Drupal.ajax drupal 7 で Uncaught TypeError: Drupal.ajax is undefined となったときの対応方法
drush 7.54 Drush Drushでdrupalサイトをインストールする方法
PHP 8.9.x drush drush sql:cli < が機能しない場合の対処
Migrate 9.x drush config Upgrade source(環境) を 変更したときにやるべきこと
サイトの構築 7.34 ECK Entityの使い方について
コンテンツの管理 8.4x Entity EntityをPropertyで探す(クエリする)方法
言語 7.15 Entity Translation デフォルトの言語 - Entity Translation
言語 7.15 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(フィールド・ラベル)
言語 7.15 Entity Translation nodeのEntity Translation
言語 7.14 Entity Translation 各フィールドのラベルの多言語切り替え漏れ(接頭子、接尾子)
コンテンツの作成 7.34 Entityreference prepopulate 新規ノード作成時のリファレンス方法
タクソノミー 7.15 Entity_Trarnslation Taxonomy TaxonomyのEntity Translation

ページ