ホストの nginx/conf.d/ ディレクトリに新規ファイルを作成:
mkdir -p nginx/conf.d
cat > nginx/conf.d/django.conf <<'NGINX'
server {
listen 80 default_server;
server_name style-log.com www.style-log.com _;
location / {
proxy_pass <http://django:8000>;
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_set_header X-Forwarded-Proto $scheme;
client_max_body_size 20m;
proxy_read_timeout 300;
}
location = /healthz { return 200; }
}
NGINX
docker-compose.prod.yml の nginx サービスに設定ディレクトリをマウント:
services:
nginx:
image: nginx:1.27-alpine
volumes:
**- ./nginx/conf.d:/etc/nginx/conf.d:ro**
ports:
- "80:80"
docker compose -f docker-compose.prod.yml up -d --force-recreate nginx
docker compose -f docker-compose.prod.yml exec nginx nginx -t
docker compose -f docker-compose.prod.yml exec nginx nginx -s reload
→ syntax is ok / test is successful が出れば成功
docker compose -f docker-compose.prod.yml exec nginx sh -lc \\
'ls -l /etc/nginx/conf.d && echo "-----" && cat -n /etc/nginx/conf.d/django.conf'
curl -I http://127.0.0.1/healthz
→ 200 OK が返ることを確認 その後、ブラウザで http://style-log.com にアクセスし Django が応答することを確認
✅ 今回の改修ポイント
これで Nginx → Django のリバースプロキシ構成 が正しく動作しました 🎉
追記以下に変更