---
title: "Så här använder du Django med uWSGI"
version: 5.2
locale: sv
source: https://docs.djangoproject.com/sv/5.2/howto/deployment/wsgi/uwsgi/
canonical: https://djangodocs.dev/sv/5.2/howto/deployment/wsgi/uwsgi/
---
# Så här använder du Django med uWSGI

[uWSGI](https://uwsgi-docs.readthedocs.io/) är en snabb, självläkande och utvecklar-/sysadminvänlig applikationscontainerserver kodad i ren C.

> **See also**
>
> I uWSGI-dokumenten finns en ”tutorial” som täcker Django, nginx och uWSGI (en möjlig distributionsuppsättning av många). Dokumentationen nedan fokuserar på hur man integrerar Django med uWSGI.

## Förkunskapskrav: uWSGI

I uWSGI:s wiki beskrivs flera ”installationsförfaranden”. Med hjälp av pip, Pythons pakethanterare, kan du installera alla uWSGI-versioner med ett enda kommando. Till exempel:

```console
# Install current stable version.
$ python -m pip install uwsgi

# Or install LTS (long term support).
$ python -m pip install https://projects.unbit.it/downloads/uwsgi-lts.tar.gz
```

### uWSGI-modell

uWSGI fungerar enligt en klient-servermodell. Din webbserver (t.ex. nginx, Apache) kommunicerar med en `django-uwsgi` ”worker”-process för att servera dynamiskt innehåll.

### Konfigurera och starta uWSGI-servern för Django

uWSGI stöder flera sätt att konfigurera processen. Se uWSGI:s [konfigurationsdokumentation](https://uwsgi.readthedocs.io/en/latest/Configuration.html).

Här är ett exempel på ett kommando för att starta en uWSGI-server:

```shell
uwsgi --chdir=/path/to/your/project \
    --module=mysite.wsgi:application \
    --env DJANGO_SETTINGS_MODULE=mysite.settings \
    --master --pidfile=/tmp/project-master.pid \
    --socket=127.0.0.1:49152 \      # can also be a file
    --processes=5 \                 # number of worker processes
    --uid=1000 --gid=2000 \         # if root, uwsgi can drop privileges
    --harakiri=20 \                 # respawn processes taking more than 20 seconds
    --max-requests=5000 \           # respawn processes after serving 5000 requests
    --vacuum \                      # clear environment on exit
    --home=/path/to/virtual/env \   # optional path to a virtual environment
    --daemonize=/var/log/uwsgi/yourproject.log      # background the process
```

Detta förutsätter att du har ett projektpaket på högsta nivån som heter `mysite` och inom det en modul `mysite/wsgi.py` som innehåller ett WSGI `application`-objekt. Detta är den layout du kommer att ha om du körde `django-admin startproject mysite` (med ditt eget projektnamn i stället för `mysite`) med en ny version av Django. Om den här filen inte finns måste du skapa den. Se [Så här distribuerar du med WSGI](/sv/5.2/howto/deployment/wsgi/)-dokumentationen för standardinnehållet som du bör lägga till i den här filen och vad du kan lägga till i den.

De Django-specifika alternativen här är:

- `chdir`: Sökvägen till den katalog som måste finnas med på Pythons importväg, dvs. den katalog som innehåller paketet `mysite`.
- `modul`: WSGI-modulen som ska användas – förmodligen modulen `mysite.wsgi` som [`startproject`](/sv/5.2/ref/django-admin/#django-admin-startproject) skapar.
- `env`: Bör förmodligen innehålla minst [`DJANGO_SETTINGS_MODULE`](/sv/5.2/topics/settings/#envvar-DJANGO_SETTINGS_MODULE).
- `home`: Valfri sökväg till projektets virtuella miljö.

Exempel på ini-konfigurationsfil:

```ini
[uwsgi]
chdir=/path/to/your/project
module=mysite.wsgi:application
master=True
pidfile=/tmp/project-master.pid
vacuum=True
max-requests=5000
daemonize=/var/log/uwsgi/yourproject.log
```

Exempel på användning av konfigurationsfilen ini:

```shell
uwsgi --ini uwsgi.ini
```

> **Åtgärdar UnicodeEncodeError för filuppladdningar**
>
> Om du får ett `UnicodeEncodeError` när du laddar upp filer med filnamn som innehåller icke-ASCII-tecken, se till att uWSGI är konfigurerad att acceptera icke-ASCII-filnamn genom att lägga till detta i din `uwsgi.ini`:
>
> ```ini
> env = LANG=en_US.UTF-8
> ```
>
> Se avsnittet [Filer](/sv/5.2/ref/unicode/#unicode-files) i Unicode-referensguiden för mer information.

Se uWSGI-dokumenten om [hantering av uWSGI-processen](https://uwsgi-docs.readthedocs.io/en/latest/Management.html) för information om hur du startar, stoppar och laddar om uWSGI-arbetarna.
