Nginxとは
OSSのWebサーバソフトウェアです。
Webサーバとは、ユーザーがブラウザを通じてWebページをリクエストすると、Webサーバがそのリクエストを処理し、対応するWebページのデータを送信します。
Nginxの主な機能
リバースプロキシ
クライアントからのリクエストをバックエンドサーバに転送し、負荷分散を行います
ロードバランシング(負荷分散)
複数のバックエンドサーバにリクエストを分散し、サーバの負荷を軽減します
静的コンテンツの高速配信
HTML、CSS、JavaScript、画像、動画などの静的ファイルを高速に配信します
キャッシュ機能
プロキシキャッシュ、静的キャッシュ、FastCGIキャッシュなどがあります
SSL/TLS
通信の暗号化を行います
リクエスト制御 & セキュリティ対策
IP制限、アクセス制御(Basic認証、JWTなど) を設定可能です
リライト、リダイレクト(URL操作)
rewrite
ディレクティブを利用し、URLの書き換えやリダイレクトを実装できます
WebSocket、HTTP/2サポート
WebSocketのプロキシ機能があり、リアルタイムアプリ(チャット・ゲーム・通知系サービス)に対応できます
サーバ監視、ログ管理
access.log
、error.log
で詳細なログを取得可能です
IPv6
Nginxのメリット
- 静的コンテンツの配信が高速で、大量の同時接続にも対応可能です
- シングルスレッドを利用しているため、メモリ消費量を抑えることができます
- リバースプロキシやロードバランサとしての機能を備えています
- 高い柔軟性があり、さまざまな用途に合わせたカスタマイズが可能です
Nginxのデメリット
- アプリケーション実行、データベース処理、動画などのCPUを多く必要とする処理には向いていません
Nginxは動的コンテンツの処理が苦手なのに採用される理由
動的コンテンツの処理はバックエンドのWebアプリケーションサーバーなどに委ね、Nginx自身はリバースプロキシとして動作することで高性能なサービスを提供できるからです。
まとめ
NginxはオープンソースのWebサーバです。高い処理性能と軽量な設計により、近年Apacheよりも人気を集めています。特に、リバースプロキシやロードバランサとしての機能が優れており、静的コンテンツの配信はNginxが担当し、動的コンテンツの処理はNode.jsなどのアプリケーションサーバに任せるといった役割分担が可能なため、効率的な運用が可能な点を評価されています。