ホームページを開設するためにレンタルサーバーを利用したいと考えている人も多いかと思います。そんな時に迷うのは、「サーバーソフトウェアは何を選べばいいか」ではないでしょうか?
Webサーバーと言えば「Apache HTTP Server(通称Apache - アパッチ)」が有名ですが、現在では「Nginx(エンジンエックス)」も高いシェアを占めるようになってきました。
この記事では、Nginxとはなにか、Apacheより優れている点はどこか、また、Nginxを採用している国内レンタルサーバーでおすすめはどこか、について詳しく解説します。
脱Apacheの有力候補Nginxとは?
サーバーソフトウェア「Nginx」が登場したのは2004年頃です。当時ほとんどのWebサーバーはApacheを使っていました。
Apacheは、マルチプラットフォームに対応し、信頼性・安定性が高いことが特徴です。また、動的モジュールを採用しているため、必要な機能の多くを拡張することができます。
一方、Apacheは同時接続数が増えるとメモリリソースを大量に消費してしまうという問題がありました。
C10K問題で見えたApacheの課題
Apacheには、同時に接続するクライアントが増えると、サーバー側で生成されるプロセスやスレッドが膨張していくという特徴があります。
プロセスやスレッドが増えるとメモリが食いつぶされていくため、ハードウェアの限界を超えるとサーバーはパンクしてしまいます。
また、プロセスが増えると処理の切り替えに伴うコンテキストスイッチも増えるので、結果としてCPUの処理能力が低下することにもつながります。
このような問題は「C10K問題(クライアント1万台問題)」と呼ばれ、サーバーを運営する企業を悩ませました。
Cは「クライアント」を、10Kは1万台を意味しています。
C10K問題を解決するために作られたNginx
NginxはApacheのC10K問題を解決するために開発されたWebサーバソフトウェアです。
NginxとApacheの違いを見てみましょう。
Apacheは機能が豊富で動的コンテンツに適している
ApacheはHTTPのサービスに特化したWebサーバーソフトウェアです。そのため、Webサービスで必要とする機能が豊富に用意されています。
また、CPUリソースを消費する動的コンテンツの処理が速いのも特徴です。
一方、C10K問題でお伝えしたように同時接続数が増えるとメモリが枯渇しやすいというデメリットがあります。
Nginxは静的コンテンツの処理に適している
Nginxは静的コンテンツの処理に向いているWebサーバーソフトウェアです。
HTTPだけでなくロードバランサーのような使い方もできるのが特徴で、サーバーの負荷を減らすために、負担になる作業は他のサーバーに割り振ることができます。
Apacheと異なり大量のアクセスがあっても無理なく処理することができます。
サーバーの負担を軽減する駆動方式の違い
ApacheとNginxはそれぞれ駆動方式が異なります。
Apacheは「プロセス駆動型モデル」でマルチプロセス。一方Nginxは「イベント駆動型モデル」でシングルスレッドを採用しています。
マルチプロセスであるApacheは、クライアントからの各リクエストを1つのプロセス(またはスレッド)が処理します。これは、例えば同時接続数が2000件なら2000個のプロセスが必要になるということを意味しています。
リクエストが増えればその分オーバーヘッドが大きくなり、メモリの使用量も増えるため、結果としてC10K問題が発生します。
一方イベント駆動型でシングルスレッドのNginxは、1つのワーカープロセスが複数のリクエストを処理します。
そのため接続数が増えてもサーバーに負担をかけず、処理の切り替えに伴うコンテキストスイッチも発生しないので、CPUの処理能力を100%活かすことができます。
これらの特徴から、イベント駆動型モデルはC10K問題の解決に適した駆動方式といえます。
C10K問題の解決だけではないNginxの優位性!
Nginxの優位性は、C10K問題の解決だけではありません。Nginxの持つ他の特徴も見てみましょう。
リバースプロキシ
リバースプロキシはクライアントとWebサーバーの間に置かれるサーバーで、Webサーバー本体の負荷を減らしたり、サーバーの特定を防いだりするために用います。
Nginxはこのリバースプロキシの機能を標準で備えています。
ちなみにリバースプロキシとしてNginxを使い、配下にApacheを置けば、通常Nginxで利用できない.htaccessファイルも使用できるようになります。
ロードバランサー
ロードバランサーはサーバーにかかる負荷を軽減する装置のことです。
Nginxではロードバランサーの機能を標準で備えています。
例えば1つのサーバーにアクセスが集中すると、ブラウザーでのページ表示が遅くなったり、うまく表示されなくなったりします。
ロードバランサーの機能を使うとトラフィックをいくつかのサーバーに分散させることができるため、サーバーの負荷を減らしスムーズなサービスを提供することができるようになります。
柔軟なカスタマイズ
実はNginxもApacheのように動的モジュールに対応しています。
これにより、必要な機能を拡張したり、必要のない機能は外したり、また独自に開発した機能の追加したり、と柔軟なカスタマイズができるため、使い勝手もApacheに近づきつつあります。
2016年2月9日にリリースされた1.9.11で動的モジュールの仕組みが入りました。
ただし現時点では、バイナリとモジュールのバージョンが異なると動作しないといった制約がありますので、この点は注意してください。
Nginxの市場シェアは伸び続けている!
ひと昔前までWebサーバーといえばApacheを利用している場合がほとんどでした。
しかし、Nginxが登場して以来Apacheのシェアは減り続け、2019年3月現在、TOP100万のサイトでNginxはApacheのシェアを抜いています。(Nginx:49.6%、Apache:34.9%)
下記はNginx導入しているサイトの一例です。
- Netflix
- Hulu
- WordPress.com
- Airbnb
ちなみにNginxは大企業向けのWebサーバーではありません。少ないメモリでもサーバーを構築でき、コストがかからないため、中小企業や個人での利用にも向いています。
Nginxを導入している国内レンタルサーバー3選!おすすめは?
日本国内でNginxを導入しているレンタルサーバーを3つ紹介します。
エックスサーバー
エックスサーバーは高速・多機能・安定性を重視しているレンタルサーバーです。マルチドメインに対応しているので、1つ契約すれば複数のサイトを運営できます。
独自SSLが無料で使えるのもメリットで、特にWordPressでブログサイトを運営している人たちからの人気があります。
また、法人向けのエックスサーバービジネスもあり、企業・個人どちらの利用にも向いています。
さくらのレンタルサーバー
とにかく安く使えるのがさくらのレンタルサーバーの魅力です。
最安のライトプランは年間一括で1,429円。月額に換算するとわずか120円です。
また安いだけでなく、無料独自SSL、PHP、マルチドメインにも対応しており、Webサイトを構築する上で十分な機能が備わっています。
ただし、プランごとに収容サーバーが異なるため、一度契約するとプランを変更することができません。変更したい場合は新規で申し込んだ上で、データの移行作業が必要となります。
スターサーバー
初期費用 (+税) | 月額料金 (+税) | 種類 | 無料お試し期間 |
1,500円 ~ | 126円 ~ | 共用サーバー | 14日間 |
ディスク容量 | 1ヶ月の転送量 | マルチサイト | データベース |
10GB ~ | 約50GB ~ | 20個 ~ | 1個 ~ |
スターサーバーは、月額126円から利用できる格安レンタルサーバーです。
無料の独自SSL、WordPressの簡単インストールに対応しており、初心者におすすめです。
また、スタードメインを利用するとネットオウルポイントが貯まります。ポイントはスターサーバーの支払いに充てることができるのでお得です。
プラン変更は可能ですが、上位プランにのみ変えることができます。
また、低料金プランのライトでは1個のMySQLしか使うことが出来ません。そのため複数のサイトを立ち上げる場合は、最低でもスタンダードプランを選びましょう。
おすすめはエックスサーバー!その理由は?
価格だけ考えるともっと安いレンタルサーバーもありますが、以下の理由からエックスサーバーがおすすめです。
- サーバーの管理画面がシンプルで使いやすい
- サポートのレスポンスがよく、技術的な質問にもわかりやすく答えてくれる
- 安定性・表示速度の評判がよい
- 料金プランは上位・下位問わず自由に変更できる
レンタルサーバーについて検索すると、もっとも多くヒットするのがエックスサーバーです。それだけ多くの人から支持されていると言えます。
この記事の4つのポイントをまとめます
世界中でインターネットの利用者は増え続けており、大量アクセスに強いNginxのシェアは今後間違いなく伸びていくでしょう。
最後にもう一度Nginxの優位性をおさらいしましょう。
- 大量のリクエストを処理するのに向いている
- 処理が軽いためApacheよりも動きが速い
- リバースプロキシ、ロードバランサとして利用できる
- 動的モジュールにも対応している
レンタルサーバーの利用を考えている人は、ぜひNginxを検討してみてください。