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_processesautoCPUコア数に合わせて自動設定
worker_connections65535接続数の上限。ulimitも合わせて変更
keepalive_timeout65クライアントとの持続接続。長すぎるとリソース消費
gzip onテキスト系コンテンツに有効通信量削減でレスポンス改善
access_log用途に応じて有効/無効高負荷時はバッファ付きlogging推奨

Route Bloom | インフラエンジニアの育成・転職支援

SES案件マッチングから資格取得サポートまで、現役IT講師がトータルで支援します。

無料相談はこちら

※ Nginxのバージョン・certbotの仕様は変更される場合があります。公式ドキュメントをご確認ください。

ABOUT ME
たから
サラリーマンをしながら開業して経営やってます。 今年、本業で独立・別事業を起業予定です。 ◆経験:IT講師/インフラエンジニア/PM/マネジメント/採用/運用・保守・構築・設計 ◆取得資格:CCNA/CCNP/LPIC-1/AZ-900/FE/サーティファイC言語 ◆サイドビジネス:アパレル事業/複数のWEBメディアを運営