Claude CodeでNginx設定を自動生成する方法 | Nginx設定を短時間で整理
- 作成日 2026.05.28
- 更新日 2026.06.09
- その他
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-runClaude 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.logClaude 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運用をより効率的に進められます。
-
前の記事
Ubuntuで「Temporary failure resolving」発生時の対処法 2026.05.27
-
次の記事
Claude Codeでsystemd設定ファイルを作成する方法 2026.05.29
コメントを書く