[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Osaka/Yokohama] Looking for infrastructure/server side engineers!

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Deployed by over 500 companies] AWS construction, operation, maintenance, and monitoring services

[Successor to CentOS] AlmaLinux OS server construction/migration service

[Successor to CentOS] AlmaLinux OS server construction/migration service

[For WordPress only] Cloud server “Web Speed”

[For WordPress only] Cloud server “Web Speed”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Cheap] Website security automatic diagnosis “Quick Scanner”

[Low cost] Wasabi object storage construction and operation service

[Low cost] Wasabi object storage construction and operation service

[Reservation system development] EDISONE customization development service

[Reservation system development] EDISONE customization development service

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Registration of 100 URLs is 0 yen] Website monitoring service “Appmill”

[Compatible with over 200 countries] Global eSIM “beSIM”

[Compatible with over 200 countries] Global eSIM “beSIM”

[Compatible with Chinese corporations] Chinese cloud / server construction, operation and maintenance

[Compatible with Chinese corporations] Chinese cloud / server construction, operation and maintenance

[YouTube] Beyond official channel “Biyomaru Channel”

[YouTube] Beyond official channel “Biyomaru Channel”

【超入門】これさえ読めばOK!初心者でもわかる NGINX 解説

こんにちは、株式会社ビヨンドの北田です。
今回は初心者の方でも、この記事さえ読めば、NGINX(エンジンエックス) について理解が出来るように、図を含めてわかりやすく解説していきます!

NGINX とは

NGINX(エンジンエックス)とは、ロシアのソフトウェア開発者である、Igor Sysoev(イーゴリ・シソエフ)氏によって開発された、OSS(オープンソースソフトウェア)のWebサーバーソフトウェアです。

2004年に初めてリリースされ、その後急速に普及し、現在では Apache と肩を並べる程の、世界で最も人気のあるWebサーバーの一つとなっています。

そもそもWebサーバーって何…?

そもそもWebサーバーとは、ユーザーからのリクエストを受けて処理を実行し、ユーザーにレスポンスを返すためのサーバのことです。

ホームページなどのサイトを閲覧する際に、ユーザーはWebブラウザを使用し、Webサーバーへリクエストを送信します。Webサーバーは受け取ったリクエストを基にデータを、Webブラウザへレスポンスとして返す事でクライアントの画面にページを表示します。

つまり、NGINX 等のWebサーバーソフトウェアをサーバーへインストールすることにより、サーバーをWebサーバーとして動かすことが可能になるということですね。

NGINX の主な機能

Webサーバーについての説明を行ったので、続いて NGINX の機能について紹介していきます。
NGINX は、Webサーバーとしての基本的な機能に加えて、様々な機能を提供しています。

◇ Webサーバー
HTTP / HTTPSリクエストを受けて、対応するリソース(HTML, CSS, JavaScript などの静的ファイル)を返すことができます。

◇ リバースプロキシ
他のWebサーバーをバックエンドとして、ユーザーからのリクエストを処理することができます。

◇ ロードバランサー
複数のWebサーバーにリクエストを分散して処理することができます。

◇ キャッシュサーバー
静的コンテンツをキャッシュして、配信速度を向上させることができます。

NGINX は基本的にWebサーバーとして使われますが、その一部の機能であるリバースプロキシやロードバランサーといった、単体の機能を切り出して使うことも出来ると理解すると良いと思います。

NGINX のメリット・デメリット

NGINX の概要とWebサーバーについて理解したところで、Webサーバーとして NGINX を使用する場合の利点や課題についてご紹介します。

NGINX のメリット

NGINX は主に、高速性安定性拡張性に優れているという特徴があります。

○ 高速性
NGINX は、イベント駆動アーキテクチャを採用しており、リクエストごとにプロセスを作成するのではなく、イベントループ方式(シングルスレッドでループ処理をまわし、キューに溜まったイベントを処理していく方式)となっているため、少量のプロセスで大量のリクエストを処理できます。特にHTMLや画像などの静的コンテンツの処理速度が速いため、コンテンツの内容によっては、Apache よりも高速にWebサイトを配信することができます。

○ 安定性
NGINX はシンプルで軽量な設計になっており、Apache がマルチコアスレッドを利用しているのに対して、NGINX はシングルスレッドを利用しているため、メモリ使用量が少ないです。同時接続数が多くなってもメモリ消費量が大幅に増えないため、安定して動作し障害が発生しにくいです。

○ 拡張性
NGINX は、モジュールと呼ばれる拡張機能を利用して、さまざまな機能を追加することができます。そのため、自分のニーズに合わせてカスタマイズすることができます。

NGINX のデメリット

続いて、NGINXを使用する際の課題についてご紹介します。

△ 動的コンテンツの処理が得意ではない
NGINX は静的コンテンツ配信には長けていますが、掲示板やSNSのような動的なコンテンツの処理速度は Apache ほど高くありません。大量の動的コンテンツがある場合は、動的コンテンツの処理が得意な Apache と組み合わせたり、CMS やアプリケーションサーバーと連携して、動的コンテンツの処理を補完できるような構成にする等の工夫が必要になります。

△ 初心者向けのドキュメントが少ない
NGINXは、Apacheより歴史が10年ほど浅いため、Apache と比べるとどうしても日本語によって記述された初心者向けのドキュメントが少ないです。そのため、機能を拡張したい場合などにおいても、Apache の方が実装方法に関する情報がインターネット上で手に入りやすく、機能追加がしやすいです。

以上のことから、大量な静的コンテンツや同時接続の処理は「NGINX」、少量だけど重たい動画などの処理には「Apache」など、目的に応じて使い分けることで、サーバーのパフォーマンスを上げることが出来ます。また、構成を工夫したり相互運用することで、メリットを共有し、デメリットを克服することも可能です。

NGINX の歴史と今後

最後に NGINX の歴史と今後について紹介していきます。

冒頭の紹介でも書いた通り、NGINX はロシアの開発者のイーゴリ・シソエフ氏(以下、シソエフ氏)によって、2004年に無料の OSS としてリリースされました。その後、シソエフ氏はマキシム・ドゥーニン氏およびアンドリュー・アレクセーエフ氏と共同で、2011年に商用サポート提供のための会社「NGINX Inc.」を設立。着実にシェアを伸ばし続け、2024年5月時点では世界中のWebサーバーのうち、34.3%で NGINX が使用されていると推測されています。

NGINX Inc. は2019年にアメリカのサーバー企業である F5 Networks によって、6億7000万ドル(約1000億円)で買収されましたが、NGINX をオープンソースソフトウェアであることを維持し続けると発表しており、買収後も以前同様に開発が行われていました。

しかし、2024年2月14日、NGINX Inc. の共同設立者の1人であるドゥーニン氏は、NGINX のメーリングリストにおいて、F5 Networks と決別し、新たに NGINX のフォークとして「freenginx」の開発を行うと発表しました。発表によると、ドゥーニン氏は2022年にモスクワ事務所が閉鎖された時に、F5 Networks との関係が無くなっており、それ以降はボランティアとして NGINX の開発に携わっていたとのこと。

無給であること自体については問題は無かったようですが、F5 Networks の管理職が交代し、開発者やコミュニティを無視して NGINX のセキュリティポリシーに干渉したことで、NGINX の開発が完全に F5 Networks の管理下に置かれてしまいドゥーニン氏が制御できなくなってしまったことから、「NGINX の開発を企業の自分勝手な行動から守るため」として、新たに NGINX のフォーク版である「freenginx」プロジェクトの立ち上げを発表したと考えられます。

NGINX をフォークした freenginx は、最初のバージョンとして「freenginx-1.25.4」正式版を公開しており、現在(2024年5月1日)は安定版の「freenginx-1.26.0 」も提供されています。

◇ 引用:https://freenginx.org/en/download.html

今後は freenginx が NGINX とは別にどのような進化をするかが次の注目点といえそうです。

NGINX まとめ

NGINX は、高速性、安定性、拡張性に優れたWebサーバーで、幅広い用途で利用することができます!
適切に利用することでWebサーバーとしてのパフォーマンスをかなり上げることが出来るので是非利用してみてください。

「NGINX についてもっと詳しく知りたい!」という場合は、以下の公式サイトやドキュメントを参照してみてください。

◇ NGINX 公式サイト:https://nginx.org

◇ NGINX 公式ドキュメント:https://nginx.org/en/docs

また、以下記事でも NGINX について詳しく紹介しておりますので是非見てみてください。
https://beyondjapan.com/blog/2023/11/nginx_history

【社内勉強会資料】NGINX 誕生の歴史

このブログ記事が、NGINX について理解を深めるのに役立てば幸いです、

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
3
読み込み中...
3 票, 平均: 1.00 / 13
92
X facebook はてなブックマーク pocket
[2024.6.30 CentOS support ended] CentOS server migration solution

[2024.6.30 CentOS support ended] CentOS server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[2025.6.30 Amazon Linux 2 support ended] Amazon Linux server migration solution

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

[Osaka/Yokohama] Actively recruiting infrastructure engineers and server side engineers!

The person who wrote this article

About the author

Makoto Kitada

Beyond picked me up from my part-time job.
Infrastructure Engineer, System Solutions Department
I hate flying insects.