W3Tech によると、Apache は 2016 年に最も広く使用されている Web サーバーであり、すべての Web サイト運営者の間で 50% 以上の市場シェアを占めています。ただし、これらの数字を別の視点から見て、最もアクセス数の多い上位 10,000 サイトのみを考慮すると、別の状況が見えてきます。これらのサイトのうち、1995 年のサーバー テクノロジーを使用しているのはわずか約 30% です。よく使用される上位 1,000 サーバーの場合、その数はわずか 27% に縮小します。
この数字は、すべての Google ページが稼働している Google Web サーバーの数が多い (約 10%) ことによって部分的に説明できます。ただし、別の理由として、ロシアの Web サーバー Nginx の急速な台頭が考えられます。2010 年当時、Nginx は数多くある Apache の代替手段の 1 つにすぎず、市場シェアはわずか 4% 程度でした。現在、BSD ライセンスのソフトウェアは、上位 10,000 位と 1,000 位にあるすべての Web プロジェクトで使用されています。
Nginxのインストールとセットアップ
Nginxとは何ですか?
ロシアのソフトウェア エンジニア、イーゴリ シソエフは、2004 年のサーバー ソフトウェアのリリースの立役者でした。現在と同様、当時の主な焦点は、リソースをあまり使用せずにできるだけ多くのクライアントにサービスを提供できる非常に高性能なサーバーを開発することでした。サーバーの人気の高まりを受けて、Sysoev は 2011 年に NGINX Inc. を設立し、それ以来ソフトウェアの継続的な開発を担当してきました。無料の標準バージョンに加えて、同社はサポートと負荷分散の改善などの追加機能を備えた有料オプションである NGINX plus も提供しています。
Apache と同様に、NGINX はモジュール形式で構築されています。これは、そのさまざまな機能の多くが、管理者が有効化または無効化できる対応するモジュールを通じて利用できることを意味します。利用できる機能の一部を以下にリストします。
-
アプリケーションの高速化: コンテンツの表示を高速化します。
-
リバース プロキシ: NGINX が Web アクセラレーション目的のリバース プロキシ (HTTP、TCP、UDP) または電子メール プロキシ (MAP、POP3、SMTP) として機能できるようにします。
-
TLS 暗号化: 安全なデータ送信用
-
帯域幅管理: すべてのサービスに最適な帯域幅を提供します
-
負荷分散: リクエストをリダイレクトすることでメインサーバーの負担を軽減します。
-
MP4 および FLV メディアをストリーミングする際に、高性能ビデオ ストリーミングを提供します。
Apache はクライアントのリクエストごとに新しいスレッドまたはプロセスを開きますが、Nginx サーバーはイベント指向で動作します。これにより、リクエストを非同期に処理できるようになり、作業メモリと時間を節約できます。このサーバー ソフトウェアは、Mac OS や Windows Server を含むさまざまな Unix/Linux バリアントを含む、さまざまなオペレーティング システムでもサポートされています。
Nginxのインストールと設定
プラス追加を選択した場合は、Nginx サポート付きのインストール プロセスを実行します。ただし、ほとんどの Linux ディストリビューションにはデフォルトでリポジトリに Nginx パッケージが含まれているため、通常、インストールはパッケージ マネージャーの悪名高いパターンに従って行われます。パッケージを紛失した場合は、Nginx 公式 Web サイト (クリックしてアクセス) からソース コードをすばやく簡単にダウンロードできます。次の手順では、Popeye が Linux 上で Web サーバーをインストールして構成する方法を示します。
1. インストール後にシステムが最新バージョンの Nginx パッケージに戻るように、次のコマンドを使用してパッケージ マネージャーを更新します。
1 |
sudo apt-get update |
2. 通常、Nginx は最初のステップの直後に起動します。ソフトウェアが正常に実行されているかどうかを確認するには、ブラウザでサーバーのドメイン名またはパブリック ネットワークの IP アドレスを使用して Nginx ログイン ページを呼び出します。
3. Nginx の構成に必要なものはすべて、ディレクトリ /etc/nginx または中央の構成ファイル nginx.conf にあります。このファイルに変更を加えた場合は、変更を受け入れるために、次の 2 つのコマンドのいずれかを使用してサーバーを再起動する必要があります。
1 |
sudoサービスnginxリロード |
4. 構成ファイルの構文には次の特徴があります。
設定: すべての設定は、対応する変数名で始まります。スペースを使用すると、1 つ以上のパラメータを追加できます。これらのパラメータはセミコロンで終了します。
1 |
ワーカー接続 768; |
メイン設定: イベント変数などの一部の設定にはパラメーターが含まれており、独自のパラメーターで設定を表すことができます。これらのサブディレクティブには中括弧 ({}) が含まれています。
1 |
イベント { ワーカー接続 768; multi_accept オン; }
|
タグ (#): これらは無効化されたディレクティブであり、タグでコメント化されています。このシンボルを削除すると、設定が再び有効になります。したがって、以下の構成の場合は...
1 |
# multi_accept オン; |
複数のクライアントを同時に受け入れるオプションは無効になりました。
タブと複数のスペース: Nginx は、タブのセットと繰り返されるスペースを 1 つのスペースとして解釈します。Nginx を構成するときに、この側面を利用して、構成ファイルを読みやすく構造化することができます。
5. 個々のモジュールの詳細と、サーバー ソフトウェアに基づいて Web サーバーまたはプロキシ サーバーを設定するための Nginx チュートリアルについては、以下のプロバイダーのドキュメントを参照してください。
Nginx の人気の理由
Nginx の人気が高まっている理由はたくさんあります。まず、Web サーバー ソフトウェアは、多くの Web プロジェクトの現在の要件に適合しています。これは、Nginx が大量のクライアント リクエストを処理するときに最高の結果を達成するだけでなく、非常に効率的な方法で動作するため、このソフトウェアがパフォーマンスが限られた多くのモバイル データ接続にとって完璧なソリューションとなるためです。Nginx は、Web サイト オペレーターとして、モバイル デバイスを含むすべてのユーザーにコンテンツを迅速に配信することで、お客様をサポートします。
さらに、ロシアの開発チームによるオープンソース製品は、ソフトウェアが提供する柔軟性により多くのユーザーを獲得しています。Nginx は、従来の HTTP Web サーバー オプションに加えて、電子メール プロキシ サーバーやロード バランサとして機能するなど、リバース プロキシ タスクでも説得力のあるパフォーマンスを提供します。
これらすべての利点にもかかわらず、Nginx はサーバー ソリューションの万能薬ではありません。パスワードで保護された領域や内部リダイレクトを介して制御される共有ホスティングは、セットアップが非常に難しいことがわかっています。このような部分およびオーバーライドは、中央の構成ファイルでのみ作成でき、サーバーを再起動することによって実装できます。その後、エラーが発生すると、共有ホスティング インスタンスのすべての参加者に影響します。個別の設定を個別の .htaccess ファイルに記録できるため、このような場合でも Apache が役に立ちます。