jpskill.com
🛠️ 開発・MCP コミュニティ

uvicorn

Uvicornは、FastAPIなどのPython製Webアプリを本番環境で動かす際に、ASGIサーバーの設定やGunicornとの連携をスムーズに行い、Webサーバーのパフォーマンスを最適化するSkill。

📜 元の英語説明(参考)

Deploy Python ASGI apps with Uvicorn. Use when a user asks to run FastAPI in production, configure an ASGI server, set up Gunicorn with Uvicorn workers, or optimize Python web server performance.

🇯🇵 日本人クリエイター向け解説

一言でいうと

Uvicornは、FastAPIなどのPython製Webアプリを本番環境で動かす際に、ASGIサーバーの設定やGunicornとの連携をスムーズに行い、Webサーバーのパフォーマンスを最適化するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o uvicorn.zip https://jpskill.com/download/15527.zip && unzip -o uvicorn.zip && rm uvicorn.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15527.zip -OutFile "$d\uvicorn.zip"; Expand-Archive "$d\uvicorn.zip" -DestinationPath $d -Force; ri "$d\uvicorn.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して uvicorn.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → uvicorn フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Uvicorn

概要

Uvicorn は、Python 用の非常に高速な ASGI サーバーです。FastAPI、Starlette、および Django ASGI を本番環境で実行する際におすすめの方法です。マルチコアを活用するには、プロセス管理ツールとして Gunicorn と組み合わせて使用してください。

手順

ステップ 1: 開発

pip install uvicorn[standard]

# 自動リロードで実行
uvicorn app.main:app --reload --port 8000

ステップ 2: Gunicorn を使用した本番環境

pip install gunicorn

# Gunicorn は複数の Uvicorn ワーカープロセスを管理します
gunicorn app.main:app \
  --workers 4 \                    # CPU コア数 × 2 + 1
  --worker-class uvicorn.workers.UvicornWorker \
  --bind 0.0.0.0:8000 \
  --timeout 120 \
  --graceful-timeout 30 \
  --access-logfile - \
  --error-logfile -

ステップ 3: Docker を使用した本番環境

FROM python:3.12-slim
WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

# 非 root ユーザー
RUN adduser --system --uid 1001 app
USER app

# 本番環境コマンド
CMD ["gunicorn", "app.main:app", \
     "--workers", "4", \
     "--worker-class", "uvicorn.workers.UvicornWorker", \
     "--bind", "0.0.0.0:8000", \
     "--timeout", "120"]

ステップ 4: プログラムによる設定

# run.py — プログラムによる設定を使用した Uvicorn
import uvicorn

if __name__ == "__main__":
    uvicorn.run(
        "app.main:app",
        host="0.0.0.0",
        port=8000,
        workers=4,
        log_level="info",
        access_log=True,
        proxy_headers=True,        # リバースプロキシからの X-Forwarded-* を信頼する
        forwarded_allow_ips="*",
    )

ガイドライン

  • 開発: uvicorn --reload (シングルプロセス、ファイル変更時に自動リロード)。
  • 本番環境: UvicornWorker クラスを使用した gunicorn (マルチプロセス、リロードなし)。
  • ワーカーの計算式: (2 × CPU コア数) + 1 — 例: 4 コア → 9 ワーカー。
  • TLS 終端処理と静的ファイルのために、常にリバースプロキシ (nginx、Caddy) の背後で使用してください。
  • ロードバランサーの背後で使用する場合は、実際のクライアント IP を取得するために proxy_headers=True を設定してください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Uvicorn

Overview

Uvicorn is a lightning-fast ASGI server for Python. It's the recommended way to run FastAPI, Starlette, and Django ASGI in production. For multi-core utilization, pair it with Gunicorn as a process manager.

Instructions

Step 1: Development

pip install uvicorn[standard]

# Run with auto-reload
uvicorn app.main:app --reload --port 8000

Step 2: Production with Gunicorn

pip install gunicorn

# Gunicorn manages multiple Uvicorn worker processes
gunicorn app.main:app \
  --workers 4 \                    # CPU cores × 2 + 1
  --worker-class uvicorn.workers.UvicornWorker \
  --bind 0.0.0.0:8000 \
  --timeout 120 \
  --graceful-timeout 30 \
  --access-logfile - \
  --error-logfile -

Step 3: Docker Production

FROM python:3.12-slim
WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

# Non-root user
RUN adduser --system --uid 1001 app
USER app

# Production command
CMD ["gunicorn", "app.main:app", \
     "--workers", "4", \
     "--worker-class", "uvicorn.workers.UvicornWorker", \
     "--bind", "0.0.0.0:8000", \
     "--timeout", "120"]

Step 4: Programmatic Configuration

# run.py — Uvicorn with programmatic config
import uvicorn

if __name__ == "__main__":
    uvicorn.run(
        "app.main:app",
        host="0.0.0.0",
        port=8000,
        workers=4,
        log_level="info",
        access_log=True,
        proxy_headers=True,        # trust X-Forwarded-* from reverse proxy
        forwarded_allow_ips="*",
    )

Guidelines

  • Development: uvicorn --reload (single process, auto-reload on file changes).
  • Production: gunicorn with UvicornWorker class (multi-process, no reload).
  • Workers formula: (2 × CPU cores) + 1 — e.g., 4 cores → 9 workers.
  • Always use behind a reverse proxy (nginx, Caddy) for TLS termination and static files.
  • Set proxy_headers=True when behind a load balancer to get real client IPs.