2017年9月14日に、エックスサーバーが Webサーバーのソフトウェアを従来の Apache(アパッチ)から、高速処理が可能な nginx(エンジンエックス)へと変更しました。また、あわせて、新規格の通信プロトコルである HTTP/2 にも対応しました。
Webサーバーソフトの変更は、サーバー全体のパフォーマンスにかなり大きな変化をもたらすと考えられますし、HTTP/2 もレンタルサーバー各社が相次いで導入を始めている今後はスタンダードとなっていく機能であり、表示速度の向上に影響があると言われています。
今回は、エックスサーバーによる nginx と HTTP/2 導入の概要、そして導入後のパフォーマンス(安定性・サイトの表示速度)の変化を、ツールによる検証データをもとに確認していきたいと思います。
nginx(エンジンエックス)・HTTP/2 とは?
レンタルサーバーで Webサイトを表示できるようにするためには、サーバー内に Webサーバー用のソフトウェアをインストールする必要があります。(共用サーバーでは、ユーザーが用意する必要はなく、すでにインストール済みです)
そして、このソフトウェアは、データベースとデータのやり取りをして、Webサイトとして表示するデータを構築したり、外部からのリクエストに応じて Webサイトのデータを送り返したりしており、Webサーバーの土台であり、要の役割を担っています。
日本の多くの共用サーバーでは、Webサーバーのソフトとして Apache(アパッチ) が最も多く使用されており、エックスサーバーもこれまではこの Apache を使用していました。また、一部ですが Unix 系の FreeBSD を使用しているさくらインターネット、LiteSpeed という最新のソフトウェアを利用している mixhost などもあります。
そして、今回エックスサーバーで導入された nginx(エンジンエックス)はロシアで開発されたソフトです。
nginx は、世界で最も使用されている Webサーバーソフトであり、Apache が苦手とする、大量の同時アクセスの処理に最適化されているため、突発的なアクセス増が発生した場合でも、高速かつ安定した Webサイトの表示が可能です。
nginx(エンジンエックス)のメリット
※エックスサーバーの公式サイトより
従来の Apache と比較した場合の nginx のメリットとしては、同時アクセスの処理に最適化されているという点が挙げられますが、具体的には以下のようなポイントが挙げられます。
- 高速な処理が可能
- メモリの使用量が小さい
- リバースプロキシ機能(Webサイトのデータをキャッシュできる)
- ロードバランサ機能(アクセスの負荷分散)
こうした機能により、Apache に比べてより高速な処理が可能で、サーバーに大量のアクセスがあっても、Apache のように処理速度を落とすことなく、レスポンスに答えることができます。
HTTP/2 とそのメリット
※エックスサーバーの公式サイトより
一方、HTTP/2 は、Webサイトの表示に使用されている HTTP プロトコル(通信規格)の新規格で、従来の HTTP/1.1 と比較して、効率的にデータのやり取りを行えることから、Webサイトの表示速度の向上が見込めると言われています。
国内では mixhost が真っ先に導入しましたが、これまでにロリポップ!や heteml なども相次いで導入を進めており、今後はすべてのレンタルサーバーに波及していくと思われる、新しい技術です。
・ロリポが次世代規格HTTP/2に対応!hetemlやグーペでもSSL証明書が無料~に
パフォーマンスの変化をチェック
では、早速エックスサーバーの以前の環境である、Apache 環境と今回導入した nginx(エンジンエックス)への変更後のパフォーマンスをツールでチェックし、どのくらい変化があったかを比較していきます。
今回もチェック内容は、ネットビジネス向けのサーバーにとって最も重要な「安定性」と「表示速度」の 2点です。
なお、今回の nginx 導入直後はややサーバーの負荷が高まったため、表示速度に関しても夜間帯の速度低下が発生しました。そのため、時間を空けて再度検証を行っており、その 2回分のデータを掲載しています。(安定性の検証は初回のみを使用)
Webサーバーの安定性
Webサーバーが安定してサイトを表示しているかをチェックするために、サーバーの死活監視を行える montis というサービスで、HTTP リクエスト(Webサイトの表示をするためにブラウザとサーバー間で行うやりとり)のモニタリングをしました。
1分毎のリクエストを 6~7日間実施して取得したデータの中から、「最速の応答速度」「平均応答速度」「応答なしの回数」の 3つをそれぞれ比較してみます。比較するのは、2017年3月に実施した検証データと、オールSSD化を行った際に計測したデータ(共に Apache 環境)、そして今回の計測データ(nginx 環境)です。
「最速の応答速度」と「平均応答速度」は、リクエストに対して Webサーバーから応答が返ってくるまでの速度のことで、ともに単位は「ミリ秒」、数値が低いほうが速く応答を返せているのでよいサーバーということになります。
「応答なしの回数」は、リクエストに対して応答が返らなかったり、応答が遅くなったためにタイムアウト扱いになってしまったものの回数で、回数がゼロに近いほど安定していることを意味しています。
また、「差分」は「オールSSD化後の計測データとの差分の値」で、プラスの分だけパフォーマンスが向上していることを表します。
HDD環境 | オールSSD環境 | nginx環境 | 差分 | |
---|---|---|---|---|
最速応答速度 | 82 | 107 | 134 | -27 |
平均応答速度 | 516 | 166 | 197 | -31 |
応答なし回数 | 0 | 0 | 0 | 0 |
平均応答速度は、旧環境(オールSSD化の前の環境)と比較すると大幅に向上していますが、オールSSD化のデータと比較すると、若干遅くなっています。これは、上にあげた一時的な負荷上昇の影響かと思われます。
最速の速度は オールSSD 環境も旧環境より下がっていますが、平均応答速度がより重要で、大きなかい離もないので問題ないでしょう。
また、応答もすべて返っており、安定性についてはこれまで通りで問題ないですね。
WordPress サイトによる表示速度
次に、WordPress で作成した Webサイトの表示速度を見てみましょう。サイトの表示速度の測定は、サイト速度のパフォーマンスを確認できる GTmetrix にて行っています。
こちらも2017年3月に実施した検証データと、オールSSD化を行った際に計測したデータ(共に Apache 環境)、そして今回の計測データ(nginx 環境)2回分の計 4つを比較します。
・エックスサーバーがオールSSD化でさらに速度向上!表示速度比較でその実力を検証
測定サイトの条件
- WordPress でサイトを作成
- 測定用の WordPressサイトの内容は、約3,000文字+画像1枚
- PHP5.6 と PHP7.0 の2つを切り替えて表示速度を測定、その平均速度を確認
- 平日の9:00~24:00 の間で、2~3時間おきに合計 7回実施
表の数値はサイトの表示に要した速度で、単位は「秒」、間の「差分」はオールSSD環境と nginx 環境(2回目)との速度差です。(プラスなら速度上昇、マイナスなら速度低下)
旧環境 | オールSSD環境 | nginx環境(1) | nginx環境(2) | 差分 | |
---|---|---|---|---|---|
PHP5.6 | 1.29 | 1.24 | 1.33 | 1.06 | 0.18 |
PHP7.0 | 1.23 | 1.10 | 1.27 | 1.06 | 0.04 |
nginx 導入直後の 1回目は、やはり夜間帯のブレが大きめに出てしまった関係で、旧環境に比べても平均表示速度は低下してしまいました。しかし、2回目は夜間でもほとんど表示速度に変わりはなく、オールSSD環境と比べても速度は上昇しています。
HTTP/2 による表示速度の変化も確認
さらに、今回 HTTP/2 も導入されたということで、HTTP/2 による速度の変化も確認してみました。
HTTP/2 を利用するには、サイトの常時SSL化をする必要があります。エックスサーバーでは、無料のSSL証明書である「Let’s Encrypt」を利用できますので、この証明書を有効にし、「https://~」で始まるURLでアクセスすれば、自動的に HTTP/2 でのアクセスに切り替わります。
比較したのは、以下の記事で検証したデータ(2017年4月実施/HDD環境)で、SSL証明書を有効にした場合の HTTPプロトコル(HTTP/1.1)と HTTP/2 による表示速度の差です。(PHP のバージョンは 7.0 のみ)
・HTTP/2によるサイト表示速度の変化を徹底検証(ロリポップ!・mixhost・エックスサーバー)
※上記の記事の時点では、まだエックスサーバーにHTTP/2は導入されておらず、あくまで比較用としてエックスサーバーのデータが掲載されています
HTTP/1.1 | HTTP/2(1) | HTTP/2(2) | |
---|---|---|---|
PHP7.0 | 1.40 | 1.49 | 1.33 |
差分 | -0.09 | 0.07 |
こちらも HTTP/1.1 と比較すると、初回の検証時には HTTP/2 の速度は遅くなりましたが、2回目は速度がアップしました。
なお、上のリンクにある記事でも検証したように、すべてのサイトで HTTP/2 のほうが速度が上昇するわけではないため、あくまでも参考程度に考えてください。
まとめ
以上、エックスサーバーの nginx(エンジンエックス)、および HTTP/2 の導入後のパフォーマンス変化を見てみました。
Webサーバーのソフト入れ替えという、かなり大がかりな変更のためか、当初は特に夜間帯におけるパフォーマンスの低下が見られました。エックスサーバーのサポートに確認したところ、やはり nginx のリリース直後には、調整作業を行っていたため、サーバーの負荷が高まる状況はあったとのことでした。
これまでも何度も同じ方法で検証はしているのですが、エックスサーバーに関しては、夜間帯でも速度低下がみられることはほとんどなかったため、今回は念のため再度の検証を行った結果、最終的には表示速度についてもいい数字がでましたので、サーバーソフトの変更は成功に終われたと考えていいでしょう。
今回使用した WordPressサイトの環境では、オールSSD環境からのパフォーマンス向上度はそれほど大きくはありませんでしたが、同時アクセスに強い nginx への変更は、よりアクセスが集中する比較的規模の大きいサイトでは、大きなパフォーマンスの変化がみられるかもしれません。
レンタルサーバー業界の技術革新は非常に速いですが、エックスサーバーは常に先頭を走るべく、最新技術をどんどん取り入れていってくれています。今後もぜひユーザーにとってよい変化をどんどん取り入れていってほしいですね。