【えんじんえっくす】

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より「エンジンが速い」サーバーを目指して命名されたよ
← 用語集にもどる