nginx が WordPress ホスティングのベストフレンドである理由
前回の記事では、なぜ WordPress に PHP7 が最適なのかを説明しましたが、今日の記事では Web サーバーの番です。
優れたホスティング エクスペリエンスの大部分は、Web サーバー スタックの構成方法です。 WordPress の優れたパフォーマンスと優れたユーザー エクスペリエンスにとって、高速なスタックを持つことが最も重要です。 PHP7 が WordPress のパフォーマンスを自動的に向上させる優れた方法である理由をすでに説明しましたが、実際の Web サーバーはどうなのでしょうか?
今日は、ウェブサーバーとは何か、最も人気のあるものは何か、nginx が非常に優れている理由について説明します。
ウェブサーバー
ホスティングの最も重要な側面の 1 つは、実際のウェブサーバーです。ウェブサーバーは、HTML などの静的コンテンツを提供し、それをクライアントに送信します(つまり、ブラウザに直接送信します)。したがって、ウェブサーバーは、PHP プロセッサを介して送信されるすべての情報を処理し、ネットワークを介してブラウザに送信されるビットに変換する責任も負います。ウェブサーバー スタックはクライアント/サーバー モデルで動作します。このモデルでは、ウェブサーバーがサーバー (コンテンツのプロバイダー) として機能し、クライアント (ユーザー) がコンテンツをリクエストする側として機能します。
最も一般的なウェブサーバーは、Apache、Microsoft の IIS、そしてもちろんnginxです。
Web サーバーは、クライアントに送信される静的コンテンツと動的コンテンツの両方を処理できますが、若干の違いがあります。サーバー部分は、ワーカー プロセスと呼ばれるプロセスでメモリに読み込まれ、要求されたコンテンツを提供する役割を果たします。 Apache と nginx はどちらも静的コンテンツと動的コンテンツを処理します。 Apache は同じワーカー プロセス内で両方を処理できますが、nginx はそれを行うために外部プロセッサを必要とするため、処理できません。
Apache と nginx はなぜこれほど人気があるのでしょうか?簡単な答えは、それらがオープンソースで無料だからです。これらを合わせると、世界の全トラフィックのほぼ 50% を占めますが、これは簡単なことではありません。
アパッチとは何ですか?
Apache HTTP サーバーは 1995 年に Robert McCool によって作成され、現在も Apache Software Foundation の下で開発中です。この Web サーバーは、1996 年以来最も人気のある選択肢です。設計が非常にモジュール化されており、大量のドキュメントがあり、非常に人気があるため、すべての主要な Web ホスティング コントロール パネルの基礎となっています。世界で最も使用されているコントロール パネルである cPanel にも含まれています。
もちろん、それは柔軟です、それはそれを使用している大多数の人が尋ねられたときに思いつく言い訳であり、一般的にはそれが真実です。また、拡張性も非常に高く、モジュールを動的にロードできるため (nginx はまだ開発中です)、簡単に構成できます。
Apache は同じワーカー内で静的コンテンツと動的コンテンツをすべて単独で処理できるため、柔軟性という点では完璧ですが、(常に問題はありますが) そのためにパフォーマンスが犠牲になります。
Apache はやや遅いことで知られていますが、nginx が普及したときほどこの真実を暴露できるものはありませんでした。両者の性能差は見逃せないものです。これに関してだけでも、ほとんどの大手企業が nginx に切り替えています。 Apache は依然として人気がありますが、テクノロジーが追いつき、以前は Apache のみで動作していたソフトウェアが nginx を組み込むようになるにつれて、状況は将来的に確実に変わるでしょう。
Nginxについてはどうですか?
Nginx は母なるロシアから来ました。 2002 年、Igor Sysoev という名前のプログラマーは、C10K 問題を深く懸念し、nginx の開発を開始しました。あれ、何?簡単に言うと、同時に多数のクライアントを処理できるようにネットワーク ソケットを最適化することですが、これが Apache の主な欠点であり、現代の Web にとって真の課題でした。最初の nginx リリースは、イベント駆動型のアーキテクチャに基づいて 2004 年に公開されました。
Sysoev 自身でさえ、nginx がどれほどの成功を収めるかを予測できませんでした。 nginx による速度とリソース使用率の低さによる多大なメリットは、時間が経つにつれて明らかになりました。 Nginx には静的コンテンツを提供する優れた方法がありますが、 動的コンテンツは処理できません。動的コンテンツが同じワーカーにバインドされていないため、はるかに高速に動作できるため、これも利点であることがわかりました。
Nginx は、Apache よりもはるかに大量の接続に高速コンテンツを提供することに優れており、現在、可能な限り最高のパフォーマンスを提供したいホスティング サービスに選択されています。イベント駆動型のアーキテクチャと非同期の性質がパフォーマンスの主なポイントです。
当初、nginx には 1 つの大きな欠点がありました。それはドキュメントです。プログラマーがロシア人であり、その機能を文書化する方法が不十分だったために、スタートは大変でした。しかし、時間が経ち、nginx を使用する人が増えるにつれて、ドキュメントは大幅に改善されました。
nginx のもう 1 つの欠点は、モジュール設計が欠如していることです。つまり、Apache が .htaccess ファイルで行うようにルールをリアルタイムで処理できないため、 モジュールをリアルタイムで読み込むこともできません。 これは nginx がすでに取り組んでいることですが、Apache の柔軟性に匹敵するにはまだ時間がかかります。
しかし、その欠点は、優れたパフォーマンスによってすぐに影を潜めます。このこと自体により、nginx がパフォーマンス重視のホスティングの一般的な選択肢となり、Steam のように広く使用されているサービスの基盤となっており、あらゆる点で Apache よりも常に高いスコアを獲得できることが何度も証明されています。 。
WordPress ホスティングに Nginx が推奨されるのはなぜですか?
WordPress サイトをホストする場合、nginx が Apache よりもはるかに優れている点がいくつかあります。これを以下のリストにまとめてみます。
取り付けが簡単
Nginx は完全なパッケージであり、動作するために必要な外部モジュールはほとんどなく、ほとんどの場合、Linux で 1 行だけで有効になります。
apt-get インストール nginx
yum install nginx
nginx がサービスとしてアクティブになるために必要なのはこれだけです。残りは構成にあります。
Apache またはその他の Web サーバーのプロキシとして機能可能
Nginx は、サーバーの機能にまったく影響を与えることなく、プロキシとして実行することで、Apache Web サーバー構成のパフォーマンスを即座に向上させることができます。
マイクロキャッシュまたは fastcgi キャッシュを直接操作できる
Nginx は、マイクロキャッシュが組み込まれているため優れており、fastcgi キャッシュと連携してパフォーマンスを 10 倍高速化することもできます。Nginx は、fastcgi キャッシュを連携するとパフォーマンスも大幅に向上し、外部キャッシュも必要としません。 memcache などのキャッシュ メカニズム。
コンテンツの提供が驚くほど高速です
Nginx は静的コンテンツを扱う際に非常に高速であり、そのような目的のための構成は非常に簡単です。単一行のコードで、静的コンテンツなどの最も一般的なファイルにアクセスできるようになり、パフォーマンスが向上します。さらに、HttpProxyModule の構成方法を知っていれば、ウェブサーバーの機能に影響を与えることなく、動的コンテンツに対して同じレベルのパフォーマンスを達成することもできます。
Apache の約 4 倍の同時接続数
1 日に何千ものアクセスがある非常に需要の高い Web サイトのホスティングを検討している場合は、nginx が Apache の 4 倍もの同時接続を処理できることを知っておくと良いでしょう。これは次の 2 つのことを意味します。
- ウェブサイト全体が速くなります
- これを行うために必要なリソースは Apache よりも少なくなります。
これは nginx のイベント駆動型の性質によるもので、次の利点を担っています。
非常に軽量
Nginx は非常によくできているため、リソースが信じられないほど軽量です。これは、各接続リクエストの処理に使用される CPU 時間が少なく なり、 使用されるメモリも 大幅に少なくなる ことを意味します。これにより、Apache では以前は不可能だった、同じサーバーを使用して大規模なサイトをホストできるようになります。
その成功の秘密はエンジンそのものにあります。 Nginx はイベントによってトリガーされる Web サーバーとして機能します。つまり、ワーカー上の「イベント」をリッスンし、必要な場合にのみ応答します。 nginx 内のオンデマンド 引数により、サービスはオンデマンドでリスナーを生成および削除できます。これにより、メモリ使用量が削減され、効率が向上します。 Apache は、mpm-event ワーカーにイベント モードを含めようとしましたが、Apache がイベント駆動型 Web サーバーとして構築されていなかったため、nginx の速度に合わせるという点で惨めに失敗しました。
ロードバランスができる
Nginx は負荷分散用に構成できるため、複数のサーバー間で負荷を分散することで同時接続の速度をさらに高めることができ、同時接続の負荷が非常に高いプロジェクトに最適です。
これはどういう意味ですか?
これは、nginx がほぼすべての点で WordPress にとって理想的であることを意味します。つまり、実装後すぐに使用のメリットが得られることになります。システム管理者であれば、nginx のインストールは簡単です。逆に、プロジェクトを設計したり、Web サイトをホストし、それを別の場所でホストしたい場合は、ホスティングで nginx を使用すると、より高速に動作する可能性が非常に高くなります。
WP Engine や Flywheel などの高品質のホスティング会社は、すでに nginx で実行されています。ただし、別のホスティング会社を利用する場合は、Web サーバー スタックに nginx が含まれているかどうかを調べたり、サポート技術者に問い合わせたりしてください。サービスが高品質であれば、スタックの一部に nginx が含まれていることを保証します。