NginxリバースプロキシとSSL設定入門|バックエンド中継・HTTPS化の実践ガイド
Skills Boost Infra Academy
NginxリバースプロキシとSSL設定入門|Webアクセラレーターとして活用する実践ガイド
バックエンドへのプロキシ・HTTPS化・ロードバランシングをNginxで実現する
NginxはWebサーバーとしてだけでなく、リバースプロキシ・SSLターミネーション・ロードバランサーとしてインフラの中核を担います。設定ファイルの書き方から証明書取得まで解説します。
NginxをリバースプロキシとしてバックエンドのNode.js・PythonアプリやAP/DBサーバーの前段に置くアーキテクチャは現場の定番構成です。
T
吉田たかし|元NWエンジニア・現役IT講師
CCNA/CCNP/LPIC-1/AZ-900取得。14年のインフラエンジニア経験を持つ現役IT講師。NginxのSES案件サポートとLinux研修でリバースプロキシ構成を多数教えてきた経験から実践的な設定を解説します。
📌 この記事のポイント
✅ リバースプロキシとはクライアントとバックエンドの間に立つ中継サーバー。キャッシュ・SSL処理・負荷分散を担う
✅ Let’s Encryptを使えば無料でSSL証明書を取得しHTTPS化できる。certbotが自動更新まで管理
✅ upstream{}ブロックを使えばNginx単体でラウンドロビン等のロードバランシングが可能
1. リバースプロキシの基本設定
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 60s;
proxy_read_timeout 60s;
}
}2. Let’s EncryptでHTTPS化(certbot)
# certbotインストール(Amazon Linux 2023 / Ubuntu) sudo dnf install certbot python3-certbot-nginx # 証明書取得 & Nginx設定自動変更 sudo certbot --nginx -d example.com # 自動更新テスト sudo certbot renew --dry-run
3. Nginxロードバランシング設定
upstream backend_pool {
least_conn; # 最小接続数方式
server 10.0.1.10:8080 weight=2;
server 10.0.1.11:8080;
server 10.0.1.12:8080 backup; # フォールバック
}
server {
listen 443 ssl;
location / {
proxy_pass http://backend_pool;
}
}4. 本番でのチューニングポイント
| 設定項目 | 推奨設定 | 理由 |
|---|---|---|
| worker_processes | auto | CPUコア数に合わせて自動設定 |
| worker_connections | 65535 | 接続数の上限。ulimitも合わせて変更 |
| keepalive_timeout | 65 | クライアントとの持続接続。長すぎるとリソース消費 |
| gzip on | テキスト系コンテンツに有効 | 通信量削減でレスポンス改善 |
| access_log | 用途に応じて有効/無効 | 高負荷時はバッファ付きlogging推奨 |
※ Nginxのバージョン・certbotの仕様は変更される場合があります。公式ドキュメントをご確認ください。
ABOUT ME



