大規模なWebサイトを中心に、世界でのシェアが急拡大しているオープンソースのWebサーバーソフト「Nginx(エンジンエックス)」。その導入のハードルが下がる。これまでは日本語の情報が少なかったが、日本語サポート付きの商用版「NGINX Plus」の販売開始や国内ユーザー会の発足で、解消に向かっている。

 WebサーバーソフトといえばApache HTTPサーバ(以下Apache)やMicrosoft IISなどが知られているが、最近世界的に勢いを増しているのがNginxだ。

 Nginxの特徴は、膨大なアクセスを効率的に処理できること。オーストリアQ-SuccessのWeb調査「W3Techs」によると、アクセス数が世界で上位1000および上位1万のサイトでNginxのシェアが特に高い(図1)。実際、海外では米Dropboxや米Facebookなど、国内ではクックパッドやヤフーなどの大手サイトが採用している。

図1●Webサーバーソフト「Nginx」のシェア
アクセス数の上位1000および上位1万のWebサイトでは、Nginxが最も多く使われている
[画像のクリックで拡大表示]

 国内での利用がさらに広がりそうだ。2014年7月1日に、サイオステクノロジーが商用版「NGINX Plus」の販売および日本語によるサポートを始めた。さらに、国内ユーザーコミュニティーが発足した。このように国内におけるNginx導入のハードルが下がったことで、Webサーバーソフトとして圧倒的なシェアを占めるApacheの代替として検討する価値が高まった。

Apacheの制約を解消

 Nginxとは、一体どのようなソフトなのか。技術的なポイントは大きく二つある(図2)。一つは「メモリーの割り当て方」。その工夫により、同時接続数を大幅に増やした。もう一つは「HTMLの処理」。これをアプリケーション(AP)サーバーから切り離し、負荷分散させる。どちらも、Apacheの拡張性における課題を解消するものだ。

図2●同時接続数と処理性能を高める工夫
アクセス数の多いサイトで用いられるリバースプロキシーサーバーを使った構成を基に、Nginxの同時接続数と処理性能を高める工夫を、Apacheと対比させて示した
[画像のクリックで拡大表示]

 ここでは、NginxをWebサーバーのフロント部分に設置しリバースプロキシーサーバーとして利用するケースを題材に、Apacheと比較して説明しよう。

 ポイントの一つめであるメモリーの割り当て方については、Apacheの場合、接続してきたクライアントに対してメモリーを割り当てると、httpリクエストなどの処理が終わっても、コネクションを切断しない限りメモリーを確保し続ける。メモリーのこの無駄な使い方によって同時接続数が制限されることが課題の一つとなっている。

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。