【えんじんえっくす】

Nginx とは?

💡 大量アクセスを「軽々とさばく」Webサーバー
📌 このページのポイント
Nginx — リバースプロキシの構造 ユーザーA ユーザーB ユーザーC Nginx リバースプロキシ ロードバランサー 静的ファイル配信 SSL終端 APサーバー 1 APサーバー 2 APサーバー 3 Nginxがリクエストを受け取り、複数のバックエンドサーバーに振り分ける 高速・軽量で、大量の同時接続を処理できる
Nginx(リバースプロキシ)のイメージ
ひよこ ひよこ

NginxとApacheの違いは?

ペンギン先生 ペンギン先生

Apacheは「リクエストごとにプロセス/スレッドを割り当てる」方式。同時接続が増えるとメモリ消費が激増する(C10K問題)。Nginxは「イベントループで少数のワーカープロセスが大量のリクエストを処理する」方式。メモリ消費が少なく、同時接続数万でも安定するよ

ひよこ ひよこ
ペンギン先生 ペンギン先生

クライアントとバックエンドサーバーの間に立つ中継サーバーだよ。Nginxがリクエストを受けて、Node.jsPython等のアプリサーバーに転送する構成が一般的。SSL終端、キャッシュロードバランシング、レート制限など多機能で、セキュリティ層としても機能するんだ

ひよこ ひよこ

おもしろい!Nginxの設定ファイルの書き方は?

ペンギン先生 ペンギン先生

/etc/nginx/nginx.conf を中心に、server ブロック(バーチャルホスト)、location ブロック(URLパス別の処理)で構成するよ。「nginx -t」で文法チェック、「nginx -s reload」で無停止リロードできる。Apacheの.htaccessに相当する機能はなく、全て設定ファイルに書くスタイルだね

ひよこ ひよこ

最近のトレンドは?

ペンギン先生 ペンギン先生

Cloudflareが開発したRust製のPingora、Envoy Proxyマイクロサービス向け)、Caddy(自動HTTPS)など新世代プロキシが台頭しているよ。ただしNginxの実績と情報量は圧倒的で、まだまだ主流。Kubernetes環境ではIngress ControllerとしてNginxが広く使われているね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Nginx」って出てきたら「高速・軽量なWebサーバー兼リバースプロキシ」と思えればだいたいOK!
📖 おまけ:英語の意味
「Nginx(engine x)」 = エンジンエックス
💬 「engine x」の略。Apacheより「エンジンが速い」サーバーを目指して命名されたよ
← 用語集にもどる