Claude CodeでNginx設定を自動生成する方法 | Nginx設定を短時間で整理

  • 作成日 2026.05.28
  • 更新日 2026.06.09
  • その他
Claude CodeでNginx設定を自動生成する方法 | Nginx設定を短時間で整理

Claude Codeを使うと、Nginxの設定ファイルを効率よく作成できます。リバースプロキシ、SSL対応、静的ファイル配信、WordPress、Node.js、Docker環境など、用途に応じたNginx設定を短時間で整理できます。この記事では、Claude CodeでNginx設定を自動生成する方法を実用例付きでまとめます。

Claude CodeでNginx設定を作るメリット

Nginx設定は、少しの記述ミスでWebサイトが表示されなくなることがあります。

特に次のような設定は、初心者には難しく感じやすい部分です。

・serverブロックの書き方
・rootとaliasの違い
・SSL証明書の設定
・リバースプロキシ設定
・WordPress向けのtry_files
・Dockerコンテナへの転送
・gzipやキャッシュ設定
・セキュリティヘッダー
・アクセス制限
・ログ出力設定

Claude Codeを使うと、目的に合わせたNginx設定を生成し、既存設定のレビューや修正案の作成もできます。

最初に伝えるべき情報

Claude CodeにNginx設定を作らせる場合は、サーバー構成を具体的に伝えることが重要です。

悪い例です。

Nginx設定を作って

良い例です。

Ubuntu 22.04でNginx設定を作成してください。

条件:
・ドメイン: example.com
・アプリ: Node.js
・アプリの待受ポート: 3000
・HTTPS対応
・wwwなしに統一
・静的ファイルは /var/www/app/public
・アップロード上限は20MB
・アクセスログとエラーログを分ける

このように条件を明確にすると、実際の運用に近い設定を生成しやすくなります。

Node.js向けリバースプロキシ設定を生成する

Node.jsアプリをNginx経由で公開する場合、Nginxはリバースプロキシとして動作します。

Claude Codeへの依頼例です。

Node.jsアプリ用のNginx設定を作成してください。

条件:
・ドメインは example.com
・Node.jsは localhost:3000 で起動
・HTTPS対応
・WebSocket対応
・client_max_body_size は20M
・wwwは非wwwへリダイレクト

生成例です。

server {
    listen 80;
    server_name www.example.com example.com;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name www.example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    client_max_body_size 20M;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        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;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

WebSocketを使うアプリでは、Upgradeヘッダーの設定が重要です。

静的サイト向けNginx設定を生成する

HTML、CSS、JavaScriptだけの静的サイトなら、rootとtry_filesを使ったシンプルな設定にできます。

Claude Codeへの依頼例です。

静的HTMLサイト用のNginx設定を作成してください。

条件:
・ドメインは example.com
・公開ディレクトリは /var/www/example.com/public
・HTTPS対応
・存在しないURLは404
・静的ファイルにキャッシュを設定

生成例です。

server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /var/www/example.com/public;
    index index.html;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|webp|woff|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, max-age=2592000";
        try_files $uri =404;
    }
}

静的サイトでは、不要なリバースプロキシ設定を入れないことがポイントです。

WordPress向けNginx設定を生成する

WordPressでは、PHP-FPMとの連携やパーマリンク用のtry_files設定が必要です。

Claude Codeへの依頼例です。

WordPress用のNginx設定を作成してください。

条件:
・ドメインは example.com
・ドキュメントルートは /var/www/example.com
・PHP-FPMは php8.2-fpm
・HTTPS対応
・アップロード上限64MB
・xmlrpc.phpは無効化
・wp-config.phpへのアクセス禁止

生成例です。

server {
    listen 80;
    server_name example.com www.example.com;

    return 301 https://example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name example.com;

    root /var/www/example.com;
    index index.php index.html;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    client_max_body_size 64M;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location = /xmlrpc.php {
        deny all;
    }

    location ~* wp-config.php {
        deny all;
    }

    location ~* \.(css|js|jpg|jpeg|png|gif|ico|svg|webp|woff|woff2)$ {
        expires 30d;
        add_header Cache-Control "public, max-age=2592000";
    }
}

WordPressでは、PHPのバージョンやPHP-FPMのソケットパスを環境に合わせる必要があります。

Docker環境向けNginx設定を生成する

Dockerでアプリを運用している場合、Nginxからコンテナのポートへ転送する設定が必要です。

Claude Codeへの依頼例です。

Docker上のアプリへ転送するNginx設定を作成してください。

条件:
・ドメインは app.example.com
・ホスト側の3000番にアプリを公開
・HTTPS対応
・APIサーバー向け
・タイムアウトを少し長めにする

生成例です。

server {
    listen 80;
    server_name app.example.com;

    return 301 https://app.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name app.example.com;

    ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;

    access_log /var/log/nginx/app.example.com.access.log;
    error_log /var/log/nginx/app.example.com.error.log;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;

        proxy_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;

        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;
    }
}

Docker Composeのサービス名で転送する場合は、Nginxが同じDockerネットワーク内にいる必要があります。

SSL対応設定を作る

本番環境ではHTTPS対応が基本です。

Claude Codeには、SSL証明書の取得手順も含めて依頼できます。

NginxでLet's Encryptを使ってHTTPS化する手順を作成してください。
Ubuntu 22.04、ドメイン example.com の前提です

基本的な流れです。

sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d example.com -d www.example.com

証明書の自動更新確認です。

sudo certbot renew --dry-run

Claude Codeには、HTTPからHTTPSへのリダイレクトやwww有無の統一まで含めて設定を作らせると便利です。

セキュリティヘッダーを追加する

Nginxでは、セキュリティ向上のためにHTTPヘッダーを追加できます。

Claude Codeへの依頼例です。

Nginx設定に基本的なセキュリティヘッダーを追加してください。
既存アプリの動作を壊しにくい範囲でお願いします。

設定例です。

add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header X-XSS-Protection "1; mode=block" always;

Content-Security-Policyは効果が高い一方で、既存サイトのJavaScriptや外部リソースに影響する場合があります。

そのため、Claude Codeには次のように依頼すると安全です。

このサイトにContent-Security-Policyを追加したいです。
既存の外部JS、CSS、画像CDNを考慮して、段階的に導入できる設定を提案してください。

アップロード容量やタイムアウトを調整する

Nginxでは、アップロード容量やタイムアウト設定が原因でエラーになることがあります。

よくあるエラーです。

・413 Request Entity Too Large
・504 Gateway Timeout
・502 Bad Gateway

Claude Codeへの依頼例です。

Nginxで大きなファイルアップロードに対応したいです。
アップロード上限100MB、バックエンドはlocalhost:3000、タイムアウトも調整してください。

設定例です。

client_max_body_size 100M;

proxy_connect_timeout 60s;
proxy_send_timeout 120s;
proxy_read_timeout 120s;
send_timeout 120s;

ただし、無制限に大きな値を設定すると、サーバー負荷が高くなる可能性があります。

Nginx設定のレビューをClaude Codeに依頼する

既存のNginx設定をClaude Codeに貼り付けてレビューさせることもできます。

依頼例です。

このNginx設定をレビューしてください。

確認したい点:
・構文ミス
・リバースプロキシ設定
・SSL設定
・セキュリティリスク
・WordPress向け設定
・不要な記述
・本番運用で問題になりそうな点

特に確認したいポイントです。

・server_nameが正しいか
・rootのパスが正しいか
・proxy_passの転送先が正しいか
・SSL証明書のパスが正しいか
・PHP-FPMのソケットが正しいか
・不要なlocationがないか
・機密ファイルへアクセスできないか
・ログ出力先が適切か

設定反映前に必ずテストする

Nginx設定を変更したら、反映前に構文チェックを行います。

sudo nginx -t

問題がなければリロードします。

sudo systemctl reload nginx

起動状態を確認します。

sudo systemctl status nginx

ログ確認です。

sudo tail -f /var/log/nginx/error.log

Claude Codeには次のように依頼すると、反映手順まで整理できます。

このNginx設定を安全に反映する手順を作成してください。
構文チェック、バックアップ、リロード、ログ確認、切り戻し手順を含めてください。

Claude Codeに依頼するときの実用プロンプト

Nginx設定を生成するときは、以下のテンプレートを使うと便利です。

Nginx設定ファイルを作成してください。

環境:
・OS:
・Nginxバージョン:
・ドメイン:
・用途:
・ドキュメントルート:
・バックエンドURL:
・HTTPS:
・www有無の統一:
・アップロード上限:
・ログ出力:
・セキュリティ要件:
・特記事項:

本番運用向けに、設定ファイルと反映手順も作成してください。

レビュー用テンプレートです。

以下のNginx設定をレビューしてください。

観点:
・構文ミス
・本番運用リスク
・セキュリティ
・パフォーマンス
・ログ設定
・SSL設定
・不要な重複
・改善案

設定内容:
ここにNginx設定を貼り付け

トラブル調査用テンプレートです。

Nginxでエラーが発生しています。
原因調査を手伝ってください。

症状:
・表示されるエラー:
・対象URL:
・直近の変更:
・Nginx設定:
・error.log:
・バックエンドの状態:

確認すべきポイントと修正案を優先順位付きで整理してください。

まとめ

Claude Codeを使うと、Nginx設定の作成、レビュー、SSL対応、リバースプロキシ設定、WordPress対応、Docker連携、セキュリティ強化を効率化できます。

特に効果が大きい用途は以下です。

・Node.jsアプリの公開
・WordPressサイト運用
・静的サイト配信
・Dockerアプリへの転送
・HTTPS化
・セキュリティヘッダー追加
・設定レビュー
・障害調査

Nginx設定は本番環境に直接影響するため、Claude Codeで生成した設定でも、反映前に必ずnginx -tで構文チェックを行うことが重要です。

安全な手順でバックアップ、テスト、リロード、ログ確認を行えば、Nginx運用をより効率的に進められます。