【レンタルサーバー選び】LiteSpeedとApacheとNginxおよびLSAPIとモジュール版PHP、FastCGIの違いと比較

シェアする

  • このエントリーをはてなブックマークに追加

【レンタルサーバー選び】LiteSpeedとApacheとNginxおよびLSAPIとモジュール版PHP、FastCGIの違いと比較

みなさん、こんにちは!

ブリュの公式ブログ.netにお越しいただきまして、ありがとうございます。

このサイトでは、ITについて特化したサイトを運営しています。

今回は、レンタルサーバーを選ぶときに重要になる、ウェブサーバーとPHPの動作モードについて紹介します。

レンタルサーバーを選んでいて、

  • LiteSpeed
  • Apache
  • Nginx
  • LSAPI
  • モジュール版PHP
  • FastCGI版PHP
  • CGI版PHP

とは一体なんだ???と思ったことはありませんか?

それぞれにメリットとデメリットがありますので、この記事内で直感的に分かりやすいように説明していきますね。

スポンサーリンク

PHPの動作モードとは?

ウェブサーバーの種類を説明する前に、PHPの動作モードを紹介します。

理由としては、ウェブサーバーによって、PHPの動作モードの可否が異なるからです。

PHPにはモジュール版PHPとFastCGI版PHP、そしてCGI版PHPがあります。

CGI版PHP

CGI版PHPは、アクセスがあるたびにPHPを

  1. 起動
  2. 実行
  3. 終了

を繰り返しています。

よって、アクセスがあるたびにPHPの起動があるので、サーバーの速度面でロスがあります。

一番ベーシックなPHPの動作モードです。

モジュール版PHP

モジュール版PHPとは、ウェブサーバーとPHPの処理が一体化しているものです。

通常、PHPは処理が終われば終了するのですが、モジュール版PHPは終了しません。

ウェブサーバーと一体化しているので、ウェブサーバー自体が動いている間は、PHP自身も起動したままです。

サイトにアクセスできるということは、ウェブサーバーは起動しているということなので、24時間PHPが起動したままの状態になるといえます。

よって、CGI版PHPと比較して、PHPの起動にかかる時間が短縮されるので、その分順当に速くなる動作モードとなります。

言い換えるのであれば、既存のウェブサーバーにおいて最も高速にPHPが動作するのが、モジュール版PHPであると覚えておいてください。

FastCGI版

上記のように、モジュール版PHPはCGI版PHPよりも高速です。

しかし、一番の弱点としては、ウェブサーバーと一体化しているという弱点があります。

これは、複数人が利用する共用レンタルサーバーにおいて、処理自体がウェブサーバーと一体化されることから、過剰に負荷をかけているユーザーを特定できない問題が生じるのです。

通常、共用レンタルサーバーにおいては、過負荷を掛けると他の利用者に迷惑がかかるので、強制終了させられます。

しかし、モジュール版PHPでは、このような監視が難しいということですね。

これはサーバー管理者として負担があるので、モジュール版PHPの高速処理と、CGI版PHPの管理の簡便さを合体させたのが、FastCGI版PHPです。

FastCGIは、アクセスがあるとCGI版PHPと同じように、PHPを起動します。

しかし、処理が終わっても、一定時間はPHPを起動したままにして、事実上のモジュール版PHPと同じ動作をします。

一定時間アクセスがなければ、PHPは終了し、再びCGI版PHPと同じ動作となります。

この一定時間というのが具体的にどれぐらいなのかは分からないのですが、連続的にアクセスのあるブログほど、モジュール版PHPに近い動作となります。

一方、アクセスがあまりないブログにおいては、通常のCGI版PHPと差がないので、FastCGIによる高速化は見込めません。

事実上、FastCGIはアクセスが途絶えるという状況次第ではモジュール版PHPよりも速度面で劣ります。

よって、FastCGIを採用しているレンタルサーバーは、技術的要素あるいはコスト面において、モジュール版PHPを採用しなかったレンタルサーバーということもできます。

また、FastCGIを採用しているレンタルサーバーを選ぶときには、ご自身のブログの規模と照らし合わせて、連続アクセスによるFastCGIの高速化の恩恵を受けられるのかどうか、十分吟味してください。

LSAPI

LSAPIは、LiteSpeed Sever Application Programming Interfaceの略です。

エルサピと読みます。

動作としては、FastCGI版の上位互換になります。

FastCGIで動作させるよりも30%高速になります。

  • FastCGIは、連続アクセスの際にはモジュール版PHPと同等の性能
  • LSAPIはFastCGIより30%高速
  • アクセスが途絶えるとモジュール版PHPの方が高速

となるのであれば、連続アクセスされればLSAPIはモジュール版PHPより30%高速になります。

一方、アクセスが途絶えるとCGI版と大差がないことになります。

FastCGIの性能がモジュール版PHPと同等以下であったのに対して、FastCGIより優れるLSAPIの場合には状況次第ではモジュール版PHP以上の性能を期待できます。

そして、LSAPIとモジュール版PHPの性能差は、アクセスされるボリュームの影響を大きく受ける、一長一短の関係にあると覚えておいてください。

アクセスが多いほどLSAPIがよく、少なければモジュール版PHPが良い。

ウェブサーバーの種類

次に、ウェブサーバーの種類を見ていきましょう。

ウェブサーバーで主流なものは、

  • Apache
  • Nginx
  • LiteSpeed

があります。

Apacheとは

Apacheはアパッチと読みます。

アパッチェではないですよ!(笑)

Apacheは、現在のウェブサーバーの基礎と言ってもいいでしょう。

古くから存在するウェブサーバーであり、高速に動作するのが特徴です。

しかし、高速動作する反面、メモリの消費量が激しく、負荷が増えると一気に遅くなったり、最悪の場合にはサーバーダウンも発生する弱点があります。

このApaxheの弱点は、ある企業のC10K問題がありました。

  • C:クライアント
  • 10K:1万人

つまり、ある企業のサーバーに同時に1万人がアクセスするとサーバーがダウンしてしまうという問題です。

メモリなどの増強もせずに、同時アクセス1万人の問題を突破するために、ロシアで後述のNginxが開発されました。

ApacheのPHPの動作モードとしては、

  • LSAPI
  • モジュール版PHP
  • FastCGI版PHP
  • CGI版PHP

があります。

Nginxとは

Nginxは、エンジンエックスを読みます。

Nginxは、上記のC10K問題を解決するためにロシアで開発されました。

どのようにC10K問題を解決したのかというと、Apacheは、アクセスがあるたびに同時に処理を行っていました。

サーバーにおける作業場はメモリなのですが、同時に処理を行うということは、メモリを消費するということです。

このように、Apacheは並列処理を行う分高速応答が可能だったのですが、メモリが飽和するとサーバーダウンになってしまいます。

そこで、Nginxでは、メモリの消費を少なくする工夫が行われました。

Apacheにおけるメモリの無駄な部分としては、ストレージへのアクセスや、その他外部処理の時間待ちがあります。

この時間待ちの間も、処理を行うメモリは使用状態になります。

Nginxでは、この待ち時間の間に、別のアクセスの処理を行います。

砕いた表現にするならば、

  • 一つの作業場で複数の仕事を担い、順番に処理する。
  • 現在の仕事に待ち時間が生じると、ひとまず横において置き、次の仕事に取り掛かる。
  • 待っていた結果が帰ってくると、今の仕事を置いておいて、先ほどの仕事に戻る

という流れになります。

想像していただければわかると思うのですが、複数の仕事を一つの作業場で行うので、当然処理は遅いです。

しかし、Apacheに対して10倍~100倍程度の同時アクセスにも耐えれるようになっています。

NginxについてApacheと比較するなら、

  • Apacheより遅い
  • でも、アクセスが集中してもサーバーダウンはしない

ということになりますね!

NginxのPHPの動作モードは、

  • LSAPI
  • FastCGI版PHP
  • CGI版PHP

になります。

残念ながら、Nginx本体だけではPHPの処理ができません。

よって、サーバーと一体化するモジュール版PHPは利用できないのです。

Nignx+Apache

なお、NginxとApacheを組み合わせて使うこともできます。

具体的にはウェブサーバーを2段構えにし、アクセスすると最初にNginxで受け止めて、Nginxから後段のApacheにアクセスを送るという方法があります。

※このNginxをリバースプロキシと言います。

これによって、NginxがApacheに送るアクセスを最適化できます。

例えば、同じページにアクセスされたときにはひとまとめにして送るなど。

これで、Apacheのメモリ不足によるサーバーダウンはある程度防げます。

その他にも、Apacheが処理したPHPの結果をリバースプロキシとなるNginxがキャッシュとして保存することで、キャッシュが有効となる一定時間以内に再度同じページにアクセスされると、Nginxがキャッシュデーターを返すことが可能です。

さらに、PHPをCGI版PHPでしか動作させることができないNginxですが、後段のApacheで処理を行うことで、過負荷時の安定性を増しながらモジュール版PHPの実行が可能になります。

このように、Nginx+Apacheの構成であれば、

  • Nginxの過負荷時の安定性
  • Apacheの高速応答

というNginxとApacheの双方のメリットを生かすことができるウェブサーバーになります。

レンタルサーバーの仕様を見て、NginxとApacheの両方が記載されていれば、このように組み合わせて利用している考えて問題はないでしょう。

LiteSpeedとは

LiteSpeedは、Apacheに代わる新世代のウェブサーバーです。

設計そのものがApacheの上位互換として開発されており、Apacheで利用していた.htaccessなどはほぼそのまま利用できます。

既存のレンタルサーバーにおいては、LiteSpeedを採用している場合、PHPの動作かモードとしてはLSAPIが利用されています。

さらに、WordPressを利用する場合には、LiteSpeed Cacheプラグインを利用でき、サーバーとの親和性の高いキャッシュ機能により、サーバーの処理速度に上乗せしてさらなる高速応答を可能にしています。

LiteSpeedのWordPressのベンチマークがこちらの図になり、LiteSpeedの圧倒的な速さがわかります。

上の図におけるLSWS+LSCacheが、最速です。

※LSWS=LiteSpeed Web Server

LiteSpeedは確かに高速なサーバーなのですが、Apacheと比べるとキャッシュの効きが良いので扱いにくいです。

WordPressなどの既製品としてのシステムを使うのであればLiteSpeedはおすすめですが、ウェブサービスの開発を行うなど、あまりキャッシュの効きが強いと困るような場合には、Apacheを利用した方が良いと思います。

スポンサーリンク

Apache,Nginx,LiteSpeedで一番性能が良いのは?

では、ここまでの説明をもとに、ApacheとNginx、LiteSpeedで一番性能が良いのはどれになるかをまとめます。

ブログ初心者の方の場合

ブログ初心者の方の場合には、残念ながらアクセス数があまり見込めません。

よって、一発アクセス時のレスポンスが最重要になるので、Apache+モジュール版PHPが最速です。

先ほども説明したように、LSAPIやFastCGIは、連続的なアクセスがなければ実質CGI版PHPと同じになるので、優れたパフォーマンスは見込めません。

また、Apache+モジュール版PHPのレンタルサーバーの場合、ブログ運営開始後にブログが成長したとしても、サーバーのキャパシティを超えない限りは高速応答が続きます。

Apacheのデメリットは

  • アクセス集中によりメモリ不足に陥りやすいこと

ですから、

  • 一人当たりのメモリの割り振りが多い
  • メモリを使い切るまでの処理を行っていない

など、レンタルサーバーのメモリが足りてるうちは、Apache+モジュール版PHPのレンタルサーバーでも十分なパフォーマンスを発揮します。

Apache+モジュール版PHPを採用しているレンタルサーバーは、

です。

基本的に月額料金が高額なサーバーほど一人当たりに割り振られるメモリも大きいと考えて問題はないです。

また、ヘテムルの場合には、サーバーがオールSSDで構成されているので、(メモリが足りている場合には)レンタルサーバーにおいて最高性能を誇ります。

処理速度の速い順(中規模ブログ向け)

ある程度アクセスの集まるブログの場合、処理速度の観点で見れば次のようなランキングになります。

なお、処理速度が同等の場合には、安定性の高いものをより上位ランクに記載しています。

また、アクセスは十分に集まるブログにおいては、LSAPIやFastCGIの連続アクセスの恩恵を受けれる場合を想定していますので、処理速度の優劣が逆転して、LSAPI>モジュール版PHPの順になります。

順位 ウェブサーバー PHP動作モード レンタルサーバーの例
1位 LiteSpeed LSAPI カラフルボックス
MixHost
2位 Nginx+Apache LSAPI ConoHa WING
3位 Apache モジュール版PHP ヘテムル
ロリポップ!※
リトルサーバー※
4位 Nginx+Apache モジュール版PHP さくらのレンタルサーバー
5位 Apache FastCGI版PHP コアサーバー
6位 Nginx+Apache FastCGI版PHP エックスサーバー
7位 Apache CGI版PHP ロリポップ!※
リトルサーバー※
Nginx CGI版PHP スターサーバー

※ロリポップ!とリトルサーバーはプランによってPHPの動作モードが異なります。

上記の表は非常に単純で、ウェブサーバーについては

  1. LiteSpeed
  2. Nginx+Apache
  3. Apache
  4. Nginx

の順に高速です。

また、PHPの動作モードについては、

  1. LSAPI
  2. モジュール版PHP
  3. FastCGI
  4. CGI版

の順に高速です。

上記の表のように、速度重視でサーバーを選ぶのであれば、PHPの動作モードとしてLSAPIを採用しているレンタルサーバー選べばいいでしょう。

LiteSpeed+LSAPIのレンタルサーバーは、

Nginx+Apache+LSAPIのレンタルサーバーは、

  • (月額1200円から)

となります。

なお、ウェブサーバーの処理速度の比較であり、ブログが表示されるまでには、実際にはメモリや回線などの様々な条件により変化します。

これに関してはカタログスペックだけではわからず、実際に利用してみないとわからない部分です。

例えば、どれだけサーバーが高速処理をしても、回線速度が遅ければ遅いレンタルサーバーとなります。

過負荷時の安定性の高い順(大規模サイト向け)

次に、負荷がかかったときの安定性の高い順では、次のランキングになります。

大規模サイトの場合には、一発のサーバーの処理速度だけではなく、負荷がかかった際にもどれだけサーバー性能を維持できるのかがポイントになります。

なお、安定性が同等のものについては、より高速に動作するものを上位にランキングしています。

順位 ウェブサーバー PHP動作モード レンタルサーバーの例
1位 Nginx+Apache LSAPI ConoHa WING
2位 Nginx+Apache モジュール版PHP さくらのレンタルサーバー
3位 Nginx+Apache FastCGI版PHP エックスサーバー
5位 Nginx CGI版PGP スターサーバー
6位 LiteSpeed LSAPI カラフルボックス
MixHost
7位 Apache モジュール版PHP ヘテムル
8位 Apache FastCGI版PHP コアサーバー
9位 Apache CGI版PHP ロリポップ!※
リトルサーバー※

※ロリポップ!とリトルサーバーは、プランによってPHPの動作モードが異なります。

この表のように安定性を重視して選ぶなら、Nginx+Apacheのレンタルサーバーを選ぶといいです。

Nginx+Apache+LSAPIのレンタルサーバーは、

  • (月額1200円から)

Nginx+Apache+モジュール版PHPのレンタルサーバーは、

Nginx+Apache+FastCGI版PHPのレンタルサーバーは、

となります。

なお、過負荷時の安定性については一人当たりに割り振られるメモリの大きさによっても大きく変化します。

極端な例では、メモリが非常に大きいApacheと、メモリが少ないNginxでは、当然安定性も逆転します。

多くの場合、レンタルサーバーでは一人当たりのメモリが公開されていないので、本当に安定性を検証したいのであれば無料お試し期間を利用しましょう。

まとめ:すべてにおいて完璧なレンタルサーバーは存在しない!!!

ここまで、LiteSpeed、Apache、Nginxと、PHPの動作モードであるLSAPI、モジュール版PHP、FAstCGI版PHP、CGI版PHPについて説明してきました。

レンタルサーバーの面白いところは、速度の比較と安定性の比較では、基本的に順位が真逆になります。

よって、すべてにおいて完璧なレンタルサーバーは存在しないと考えてください。

  • 速度を重視するのか
  • 安定性を重視するのか

によって、最適なレンタルサーバーが変わります。

  • 速度重視ならPHP動作モードがLSAPI
  • 安定性ならウェブサーバーがNginx+Apache

というのを基準に、レンタルサーバーの仕様を見比べてください。

ご自身にあったレンタルサーバー選びをしてくださいね。

ご不明な点は、 お問い合わせからお願いします。

記事内容と関係性に関わらず、純粋にわからないこと情報提供各種コメントなど、お気軽にどうぞ!

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする