最近ではLinuxの普及によってライセンスフリーのソフトウェアも珍しくない存在となりました。

誰でも無償で利用できるOSSとして有名なnginx(NGINX)はApache(Apache HTTP Server)と共に評価されていますが無償のOSS自体に不安を持っている方も少なくないでしょう。

そこで今回はnginx(NGINX・エンジンエックス)の使い方や機能をご紹介します。

nginxとApache(Apache HTTP Server・アパッチ)それぞれの特徴とメリットも比較・検証することで両者の違いも確認していきましょう。


nginx(NGINX)とは

nginxの特徴

緑フォントのロゴマークが特徴的なnginx(NGINX)はNginx,Inc.の最高技術責任者Igor Vladimirovich Sysoev(イーゴリ・ウラジーミロヴィチ・シソエフ)によって開発されたOSS(オープンソースソフトウェア)です。

OSSはThe Open Source Initiativeに認定されたソフトウェアのことで、nginxはHTTPやHTTPSで使われる無料の軽量サーバーとなっています。

nginxは高速処理や並列処理などの特性を持ち、処理能力はIBM HTTP Serverを大きく上回るともいわれているのです。

Apache(Apache HTTP Server)の代わりに利用できるWebサーバーとしても注目を集めるnginx。

無償で利用できるだけでなくHTMLドキュメントや画像ファイルといったコンテンツなどの高速配信も実現しています。


nginxの開発事情

nginxはApacheより優れたパフォーマンスを達成し「C10K問題」を解決するという明確な目標の元開発されました。

そのためハードウェアやネットワーク環境に問題がなくても同時に顧客からの接続数が集まり一定数を超えるとサーバの処理能力が急激にダウンしてしまう「C10K問題」対策に有効なOSSとなっています。


nginxの機能

nginxはHTTPサーバーやリバースプロキシサーバの機能だけでなく、汎用TCP/UDPプロキシサーバーの機能など多くの役立つ機能を持ち合わせています。

安全で信頼性の高いさまざまなサーバ機能が提供され、高負荷環境であることが特徴といえるでしょう。

静的ページに対して同時に多数アクセスができマイクロサービスの設定も可能となっています。

並行的なWebサービスの提供が行えて、以下のような機能があるのも特徴的です。


メールプロキシサーバ

ネットワークなどからインターネットに接続する際に出入り口となる所で中継しているサーバーのことです。


URL ReWrite

アクセスのあったURLを正式に書き換えてから処理をしてくれる機能を指します。


WebDAV

WebサーバーからWebクライアントへファイルなどを送信するときに使われるディレクトリを直接管理を行える機能です。

またスケーラビリティで対応でき、クラウド管理も可能です。

コンピュータシステム上で一方から他へ送信されるメッセージや要求に対応するリクエスト処理も実現できます。


nginxのメリット

nginxは速くて高負荷に強いシングルスレッドです。

メモリリソースの消費を一定量に保ったままで大量のリクエストを対処することができます。

イベント駆動のため速い速度でコンテンツを提供し、柔軟なカスタマイズが可能です。

多くの機能もモジュール化されリバースProxyやロードバランサー(負荷分散装置)機能もあります。

消費メモリが少ないのも特徴です。

HTMLテキストや画像といったスタティックコンテンツをキャッシュもできます。

またHTTPやHTTPS以外にもIMAP、SMTP、POP3などのプロトコルを天秤にすることも可能です。

そして現在注目のGoogleが開発したプロトコル「SPDY」にも対応しています。

多くの同時接続数で処理が重たい場合はリバースプロキシサーバーとして利用でき、macOSで機能することもnginxのメリットです。


Apache(Apache HTTP Server)とは

Apacheの特徴

さまざまな機能があるnginxですがApacheはどうなのでしょうか?

Apacheは世界でも最も幅広く使用されている無償で利用できるOSSです。

ApacheでPHPを動作させることができ、アクセス制限も割と標準で対応しています。

Webサーバとして性能が豊富に揃っているのも魅力です。

低い負荷環境で同時アクセス数が少なく、単純リクエストの数が多い環境となっています。


Apacheの機能

Apacheには複数のタスクを切り替えて情報処理をコンピュータにさせるマルチプロセス機能があります。

モジュールを使って機能を拡張することも可能です。

モジュールは静的リンクや動的リンクが追加できるようになっています。


Apacheのメリット

Apacheはノウハウや運用実績が豊富で信頼性も高いOSSです。

日本語を含めてドキュメントも整備されているのもApacheのメリットといえるでしょう。

Apacheは多くのOSをサポートするためにMPM(マルチ プロセッシング モジュール)があり、使用するOSに最適化されたApacheを簡単に組込むことができます。

静的または動的なコンテンツを公開するためにも使用でき、動的コンテンツの処理スピードが速いのも特徴です。

Apacheと提携する環境や機能がさまざまなWebアプリケーションによって設計されています。

モジュールを使用することによって必要な機能を簡単に追加できる点もメリットのひとつで、自作したモジュールも追加することも可能です。

ApacheはLinuxやUNIXプラットフォームなどWindows NT、OS/2でも動作することができます。

開発者向けで技術情報を入手しやすいのも点も魅力といえるでしょう。


nginxとApacheの違い

nginxとApacheを比較して検証

nginxはその能性や設定などによってApacheを代替できるWebサーバとして注目されています。

HTMLドキュメントや画像ファイルなどの静的コンテンツを高速で配信する能力はApacheよりも優秀でしょう。

またApacheよりメモリを大幅に節約することができるので毎秒約4倍のリクエストを処理できます。

軽量なコンテンツの同時接続が100アクセス状況下の実験結果ですがApacheよりもnginxの方が1.2倍~1.5倍ほど高いといわれ、Apacheとnginxのマルチプロセスとシングルスレッドの違いからnginxはApacheの10~100倍ほど対応できるのです。

軽量なコンテンツはどちらも得意とされますが同時処理数が増えてしまうとnginxの方が断然有利になります。

nginxは同時処理数が増えてもそれほどメモリの使用量は変わりませんが、Apache はリクエストの量に対してメモリが消費されてしまう点に注意が必要です。

nginxは1プロセスで複数のリクエストを処理します。

それに対してApacheは1リクエストに対して1プロセスの処理を行うため全く違うOSSであると認識できるでしょう。

処理能力では軽量なコンテンツの同時接続を100アクセスの状況での実験結果ですがApacheよりもnginxの方が1.2倍~1.5倍ほど高いという結果が出ており、続数が増えれば増えるほど処理能力に差がでてくるのも事実です。

Apacheには少量の同時接続数で重たい処理をさせてnginxには多量の接続数や軽い静的コンテンツを処理させることで効率的なサーバ構築が実現できます。

それぞれの特徴に適しているケースを以下にまとめてみました。


nginxに向いている場合

  • 負荷が大きく仕事量の増大に適応できる能力や度合いが要求される場合
  • 静的ページに同時多数のアクセスが集まる場合


Apacheに向いている場合

  • 負荷が大きくなく早期セットアップが必要な場合
  • ある程度の同時アクセスが見込めない場合
  • 同時アクセス数が少なく単純なクエスト数が多い場合


さまざまなデバイスで快適に使用するために

現在の私たちの生活にはパソコンやスマートフォンは欠かせない存在です。

パソコンは多くの企業による利用が大半を占めているため仕事の効率の良さや使い勝手だけでなく経費削減面からも快適に使えるOSが求められています。

さまざまなデバイスをより良い環境で使用できるために無償で利用できるnginxとApacheを見直すべきでしょう。

先述したようにnginxとApacheにはそれぞれ異なった特徴がありますが、それを上手に活用して使いこなしていければ抜群の環境を整えることができます。

nginxとApacheは世界規模で多くのユーザーに使われている安心と信頼性のあるソフトウェアです。

パソコン関係の動作環境はもちろんのこと、使用感やソフトウェアの持っている独自性なども重要なポイントとなるでしょう。

nginxにApacheをPlusすれば最高の環境を整えることも可能です。


nginxのダウンロード

ここでnginxのダウンロードについて確認していきましょう。

nginxのダウンロードは下記の公式サイトから行います。

http://nginx.org/

公式サイトにアクセスしたら右サイドバーに表示されている 「download」表示をクリックします。

次に上方の「Mainline version」の真下の「nginx / Windows-1.17.8」を選択してください。

ダウンロードが開始されますので任意の場所への保存すればnginxのダウンロードは完了です。


Apacheのダウンロードとインストール

ここでApacheのダウンロードとインストールの手順も確認しておきましょう。


Apacheのダウンロード方法

まず下記のサイトににアクセスしてApacheのインストラーをダウンロードします。

https://www.apachelounge.com/download/

真ん中に位置する「httpd-2.4.41-win64-VS16.zip」をクリックするとダウンロードが開始されます。

ダウンロードが終了したらZipファイルを解凍し、フォルダ内に存在する「Apache24」を「C:\」に移して「Apache24」を切り取ってください。

続いて「C:\」フォルダを表示させてフォルダ内で貼り付けします。

「C:\Apache24」のフォルダがあることを確認してから「Apache24」フォルダを表示させフォルダ内の「conf」フォルダをクリックしましょう。

「httpd.conf」ファイルをデキストエディタで表示させて検索機能で「ServerName」を検索すると「#ServerName www.example.com:80」が見つかります。

この部分の「#」を削除して上書き保存すればダウンロードは終了です。


Apacheのインストール手順

Apacheのインストールや起動は基本的にコマンドプロンプトを使用します。

まず初めににコマンドプロンプトを起動し、コマンドプロンプトが表示されたら「cd c:\Apache24\bin」と入力して「Enter」を押してください。

入力欄の左側が「c:\Apache24\bin>」に変化したら成功です。

その後「httpd -k install」と入力して「Enter」をクリックすればApacheインストールの完了です。


OSSのサポートと補償

OSSは多くの場合、サポートや保証などがないため利用者数や開発年数などが信頼性や安定性を基準とした判断材料になります。

無償である代わりにノンサポートのソフトウェアであるというのが難点でもあるでしょう。

充実したサポート内容を求めるのであれば有料サービスを提供している企業などに相談してみるのがおすすめです。

日本でもいくつかの企業が有償でサポートやサービスを提供しています。

利用を検討している場合は信頼性のある専門知識を活用できるサポートを探しておくといいでしょう。

一例としてIBM Open Source Supportをご紹介しておきます。

IBM Open Source SupportはスペシャリストによるOSSのエンタープライズサポートです。

自分に合ったサポート内容があるか事前に確認しておくことをおすすめします。


総括

ここ最近、急上昇しているnginxですがWebサーバーはシステムの基盤の重要な部分になるため十分に理解せず使用するとクライアントへの返答や信頼にも影響を与えてしまう恐れがあります。

パソコンをより良い環境で使用するためにもnginxとApache、それぞれの特徴や違いをしっかり把握して効果的に利用していくのがいいでしょう。

パソコンの環境が整えば仕事面の負荷も減り、充実した生活を送ることもできそうです。

ぜひ今一度、改めてnginxとApacheを見直すことをおすすめします。