2026年5月26日
2026年5月26日
DockerでNginxのリバースプロキシを設定する方法
はじめに
Nginxは高性能なウェブサーバーであり、リバースプロキシ機能も持っています。Dockerを使用してNginxをインストールし、リバースプロキシとして利用することで、アプリケーションやウェブサイトのセキュリティと負荷分散を向上させることができます。
症状・背景
このテーマが必要になる主な場面は以下の通りです:
- ウェブサイトやアプリケーションの負荷分散を実現したい
- HTTPS接続に必要なSSL/TLS証明書管理を簡素化したい
- メインのウェブサーバーとバックエンドサーバー間で通信を効率的に制御したい
手順・設定方法
ステップ1: Dockerイメージを拉致する
# Nginxの最新安定版をインストールします。
docker pull nginx:latest
# コンテナを起動します。-p 80:80 はホストのポート80とコンテナのポート80をマッピングしています。
docker run -d --name mynginx -p 80:80 nginx
ステップ2: Nginxの設定ファイルを編集
# 設定ファイルをコピーします。Dockerfileを作成し、初期設定ファイルを上書きします。
cat <<EOF > Dockerfile
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
EOF
# 任意のNginx設定ファイル(nginx.conf)を作成します。以下は基本的な例です:
cat <<EOF > nginx.conf
events {}
http {
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://backend_server;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
}
}
EOF
ステップ3: リバースプロキシのルールを設定
# Dockerコンテナを作成し、起動します。環境変数でバックエンドサーバーのアドレスを指定します。
docker run -d --name mynginx \
-e BACKEND_SERVER=http://192.168.1.100:8080 \
-p 80:80 -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf mynginx
ステップ4: テストと監視
# コンテナのログを確認します。
docker logs mynginx
注意事項
- セキュリティ上の注意: Nginxコンテナは外部からのアクセスを受け付けるため、適切なネットワーク設定やファイアウォール規則が必要です。また、SSL/TLS証明書の管理も重要です。
- パフォーマンス/運用上の注意: 複数のバックエンドサーバーを追加する場合は、ロードバランシングと故障耐性を考慮してください。Nginxの設定ファイルは定期的にバックアップすることをお勧めします。
まとめ
1. Dockerイメージの拉致: Nginxの最新安定版をインストールし、基本的な起動を行います。
2. 設定ファイルの作成: Nginxの設定ファイルを作成し、リバースプロキシルールを記述します。
3. コンテナの起動: Dockerイメージを使用してNginxコンテナを起動し、リバースプロキシ機能を利用するための環境変数を設定します。
4. テストと監視: コンテナの動作状況を確認し、必要に応じて調整を行います。
関連記事: