NGINX とは
Webサーバーとリバースプロキシ
NGINXは、高性能なオープンソースのWebサーバー、リバースプロキシ、ロードバランサー、HTTPキャッシュです。2004年にIgor Sysoevによって作成され、現在はF5 Networksが所有しています。
コア機能
- Webサーバー — 静的コンテンツの配信
- リバースプロキシ — バックエンドサーバーへのリクエストのプロキシ
- ロードバランシング — サーバー間のトラフィック分散
- SSL/TLS終端 — HTTPS接続の処理
- HTTPキャッシング — アップストリームサーバーレスポンスのキャッシュ
利点
- 非同期イベント駆動アーキテクチャ
- 低メモリ消費
- 高性能(10K+接続)
- シンプルな設定
- モジュラーアーキテクチャ
典型的なユースケース
- 静的ファイルの配信(HTML、CSS、JS、画像)
- Node.js、Python、PHP、Java用リバースプロキシ
- APIゲートウェイ
- Dockerコンテナ間のロードバランシング
- マイクロサービス用SSLオフロード
基本設定
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
}
location /static/ {
root /var/www;
expires 30d;
}
}
NGINX vs Apache
| パラメータ | NGINX | Apache | |------------|-------|--------| | アーキテクチャ | イベント駆動 | プロセス/スレッド | | 静的ファイル | 高速 | 低速 | | .htaccess | なし | あり | | 設定 | 集中型 | 分散型 |
人気モジュール
- ngx_http_gzip_module — レスポンス圧縮
- ngx_http_ssl_module — HTTPS
- ngx_http_proxy_module — プロキシ
- ngx_http_upstream_module — ロードバランシング
- ngx_http_rewrite_module — URLリライト