Uvicorn Logo
Infrastruktur

Uvicorn

Schneller ASGI-Server für asynchrone Python-Anwendungen – führt FastAPI & Co. im Betrieb aus.

Offizielle Quelle: uvicorn.dev

Überblick

Uvicorn ist ein ASGI-Server für Python. Er bildet die Laufzeitumgebung, in der asynchrone Web-Anwendungen – etwa auf Basis von FastAPI – tatsächlich ausgeführt werden. ASGI ist der asynchrone Nachfolger des älteren WSGI-Standards und erlaubt nebenläufige Verarbeitung von Anfragen.

Typische Einsatzgebiete

Uvicorn führt asynchrone Python-Web-Anwendungen im Betrieb aus. In Produktions- umgebungen läuft er üblicherweise hinter einem Reverse Proxy (z. B. Nginx), der TLS-Terminierung, das Ausliefern statischer Dateien und die Lastverteilung übernimmt, während Uvicorn sich auf die Anwendung konzentriert.

Stärken

  • Asynchron und performant: auf nebenläufige, I/O-lastige Workloads ausgelegt.
  • Worker-Modell: mehrere Worker-Prozesse nutzen mehrere CPU-Kerne und erhöhen Durchsatz und Ausfallsicherheit.
  • Proxy-tauglich: versteht weitergeleitete Header (z. B. das ursprüngliche Protokoll und die Client-Adresse), wenn er korrekt hinter einem Proxy betrieben wird.

Grenzen und Abwägungen

Uvicorn ist der Anwendungsserver, nicht der gesamte Auslieferungsweg. Für TLS, statische Inhalte, Caching und das Abschirmen der Anwendung nach außen ist ein vorgelagerter Reverse Proxy vorgesehen. Worker teilen keinen gemeinsamen Speicher – prozessübergreifender Zustand gehört in eine Datenbank oder einen externen Cache.

Einordnung

Uvicorn ist die Standard-Laufzeit für asynchrone Python-Web-Anwendungen – schlank, schnell und darauf ausgelegt, hinter einem Reverse Proxy den Anwendungscode auszuführen.