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. 関連モジュール降順で並び替える タイトル
テーマ 8.3x Theme drupal8 で パスに応じたページテンプレート名を利用する方法
Token 8.4x Token カスタムモジュールからtokenを提供する方法(drupal8版)
token 7.34 token オリジナルモジュールからtokenを提供する方法を教えて下さい。
テーマ 8.9.x Twig Twig で 月末日を算出する方法
ユーザ 7.23 User 長い投稿者名の表示が切れる
ユーザ 7.38 user form 新規ユーザー登録時、パスワード再設定時のパスワード入力抜けを防ぎたい
ユーザの管理 7.59 user pass drupal 7 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
ユーザの管理 8.9.x user pass drupal 8 で 管理者(uid=1)パスワードがわからなくなったとき 新しいパスワードを設定する方法
video 8.4x video map 動画上にクリッカブルマップを作成する方法
フォーム 8.9.x Views Views exposed filterのフォームに#default_valueを仕込む方法
フォーム 7.38 Views Views一覧の絞り込み検索フォームで複数フィールドを対象にしたい
Viewsプログラミング 8.4x Views drupal8におけるViewsプログラミング
コンテンツの作成 6.x Views カルーセルのように回転するコンテンツを作りたい
サイトの構築 7.31 Views ブロックViewsの絞り込みが表示されない
アップデート 7.28 Views Pagerが表示されなくなった
表示 7.26 Views ページ内に2つ目Viewsブロックを設置するときPagerが連動してしまう
ブロック 7.15 Views ひとつのViewsをページやブックページ中で再利用する方法は?
Viewsプログラミング 8.6.x Views Drupal8 Viewsの動的キャッシュをクリアする方法
コンテンツの作成 7.38 Views CSV出力にHTMLが入ってしまう
サイトの構築 7.22 Views フィールドセットの伸縮をノンプログラミングでやりたい

ページ