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本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
uvicorn.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
uvicornフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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:
gunicornwithUvicornWorkerclass (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=Truewhen behind a load balancer to get real client IPs.