NginxでDrupalのパフォーマンスを向上させることに焦点を当てるべき理由

公開: 2018-01-14

Drupalは、柔軟性とシンプルさが出会う場所であることは誰もが知っています。 Drupalは、技術者以外のユーザーにとって完璧なソリューションとなるように設計されたCMSであり、コンテンツ管理システムとコンテンツ管理フレームワークの長所を活かすために努力している統合システムです。 したがって、サイトビルダーが作成しようとしているもの(ニュースサイトやオンラインストアからソーシャルネットワークや非常に複雑な政府のWebサイトまで)に関係なく、完璧なDrupal開発のための適切なモジュールを組み合わせるだけです。 Nginxは、キャッシュ、負荷分散、リバースプロキシなど、Webサイトのパフォーマンスを向上させるために使用できるこの非常に強力なWebサーバーであることが知られています。 Drupal Nginxの組み合わせにより、パフォーマンスを最大化できます。 次のDrupalプロジェクトにNginxを選択する理由を見てみましょう。

Drupalは絶えず更新されており、その最新バージョンは、このオープンソースCMSが最も人気のあるフレームワークの1つに急速に進化したことを証明しています(Drupal.orgのレポートによると、ほぼ100万のWebサイトがDrupal 7を使用しています)。 Drupalのバージョン-Drupal8は、最もエキサイティングな機能のいくつかを備えたユーザーを席の端に置いています。

Drupal8のこれらの機能のいくつかは次のとおりです。

  • すぐに使えるWebサービス:Webサイトがデスクトップ専用であり、Webサービスが他のシステムのサービスを使用するWebサイトにのみ使用されていた時代は終わりました。 写真にはさまざまなデバイスが含まれているため、現在の世界のWebサービスはこれまで以上に重要になっています。 WebサービスはDrupal7のサードパーティモジュールによってサポートされていますが、Drupal8コアに含まれています。
  • セキュリティの改善:セキュリティは常に懸念事項であり、新機能の追加により、Drupal8はシステムをより安全にする方法を提供しました。
  • より簡単で高速:Drupal 8を使用すると、Drupal APIは完全にRESTfulになり、開発者はAngular.js、Ember.js、およびその他の多くの表示ツールを簡単に使用できます。
  • モバイルの改善:前に説明したように、モバイルデバイスは今日の世界の原動力です。 Drupal 8は、モバイルデバイスからの簡単なバックエンド管理を伴うモバイルサイトテンプレートの完全なサポートを提供します。

これらの機能のほとんどは、大量のトラフィックを駆動し、パフォーマンスの問題に対して脆弱ないくつかの最大かつ複雑なサイトをサポートしているため、トラフィックの増加の原動力はクライアントだけに限定されないため、これらの問題にできるだけ早く対処することが重要になります。およびサーバーだけでなく、バ​​ックエンドサーバー間でも。 Drupal 8 WebサイトにNginxを実装すると、サーバー関連のすべての問題を解決し、サイトのパフォーマンスを向上させることができます。

DrupalNginxを使用したサイトアーキテクチャ

さまざまなDrupalWebサイトが最初にApacheHTTPサーバーをWebサーバーとして使用しており、それを構成するための手順が広く利用可能であるという事実により、多くのWebサイト所有者の間で最初の選択肢となっています。 しかし、Webサイトが成長し、より多くのトラフィックを増やし始めると、それは人々がNGINXサーバーに移行するときです。 この段階では、サーバー全体への10,000を超える接続を一度にサポートすることが困難であり、サーバー全体がフリーズまたはクラッシュするため、DrupalとApacheは克服が難しい問題を共有しています。

サイトの脆弱性が危機に瀕しているため、Drupal 8 NGINXは、サイトのアーキテクチャを安定させるために組織が推奨する選択肢です。 サーバーを変更して問題を引き起こす代わりに、サイトの成長に伴ってこのようなパフォーマンス関連の問題に対処するためにいくつかの手順を実行できます。

  • DrupalサイトのWebサーバーの最初の選択肢としてのNGINXは、パフォーマンスを向上させ、メモリ使用率を大幅に削減します。
  • NGINXは、インターネットトラフィックを処理し、アプリケーションサーバーの負担を軽減できるため、多くのDrupalサイトで最も人気のあるリバースプロキシサーバーの1つです。

Webサーバー

Drupal Webサイトのパフォーマンス、セキュリティ、および柔軟性を処理できる簡単な修正は、ApacheからサイトのWebサーバーとしてのNGINXへの移行です。 ほとんどのWebサーバーに共通する問題は、C10K問題です。これは、Webサーバーが同時接続(通常、一度に10,000を超えない接続)をサポートする際の難しさです。 NGINXは、この特定の問題を解決するために設計されました。 Drupal NGINXは、リクエスターにリソースを割り当てることなく、発生時にリクエストを処理する進行中のイベントループを実行する機能を備えており、新しい接続ごとに新しいプロセスをフォークするプロセスで発生するオーバーヘッドを排除します。

Drupal 8Nginxを使用したリバースプロキシサーバー

リバースプロキシサーバーは、通常のサーバーとは異なります。 このサーバーはブラウザからリクエストを受信し、すぐに処理するのではなく、各リクエストを調べて、リクエストを実行するか、別のサーバーに送信して実行するかを決定します。

このようなサーバーの導入は、柔軟性、冗長性、セキュリティの向上、その他の優れた機能が満載のサイトアーキテクチャを作成するための最初のステップです。 リバースプロキシサーバーがWebサイトのパフォーマンスに役立つ可能性がある主な理由の1つは、Webサーバー間の通信がインターネット経由の通信よりも高速であるためです。 また、リバースプロキシサービスでの他のWebサーバーとのこの通信は、基本的に無料です。

したがって、リバースプロキシサーバーを追加することで、Drupalサイトはインターネットトラフィック全体を直接処理する必要がなくなります。 このサーバーは、大量のトラフィック、セキュリティの問題、パフォーマンスの問題のプレッシャーの下で崩壊しているサイトを即座に処理します。 サイトアーキテクチャに新しい柔軟性が導入されたことにより、リバースプロキシサーバーは、アプリケーションサーバーに影響を与えることなく効率的に実行できる新しい機能を可能にします。

複数のアプリケーションサーバーと負荷分散

単一のアプリケーションサーバーでパフォーマンスを向上させることは非常に不可能です。 ただし、より大規模で高速なサーバーは潜在的に高価であり、単一のデバイスには常に固有のパフォーマンスがあるため、パフォーマンスを向上させるには、現在のデバイスをアップグレードまたは交換する必要があります(非常に破壊的な操作)。 ここで、リバースプロキシサーバーが登場します。 このサーバーでは、複数のアプリケーションサーバーを使用できるため、システムにサーバーを追加するだけでDrupalのパフォーマンスが向上します。 サーバーの追加と削除のこのプロセスは、ダウンタイムの量を大幅に削減するNGINXPlusなどの適切なソフトウェアツールを使用して簡単に行うことができます。

複数のアプリケーションサーバーが存在するということは、どのサーバーが次の要求を受け取るかを決定する手法が必要であることを意味します。 手法は、単純なアプローチから、各サーバーがシステムによって検査され、要求を送信する前に最もビジーでないサーバーを見つける複雑なアプローチにまで及びます。 これは、負荷分散として知られています。 NGINXサーバーとNGINXPlusは、Drupalのパフォーマンスを向上させるのに役立つ5つの負荷分散技術をサポートしています。

Drupal 8 Webサイトでの実装を開始するには、Nginxが推奨するこの公式のDrupal 8Nginx構成ファイルを確認してください。