---
title: "Så här distribuerar du med WSGI"
version: 6.1
locale: sv
source: https://docs.djangoproject.com/sv/6.1/howto/deployment/wsgi/
canonical: https://djangodocs.dev/sv/6.1/howto/deployment/wsgi/
---
# Så här distribuerar du med WSGI

Djangos primära distributionsplattform är [WSGI](https://wsgi.readthedocs.io/en/latest/), Python-standarden för webbservrar och applikationer.

Djangos hanteringskommando [`startproject`](/sv/6.1/ref/django-admin/#django-admin-startproject) sätter upp en minimal standardkonfiguration för WSGI åt dig, som du kan justera efter behov för ditt projekt och styra vilken WSGI-kompatibel applikationsserver som helst att använda.

Django innehåller dokumentation för att komma igång med följande WSGI-servrar:

- [How to use Django with Granian](/sv/6.1/howto/deployment/wsgi/granian/)
- [Så här använder du Django med Gunicorn](/sv/6.1/howto/deployment/wsgi/gunicorn/)
- [Så här använder du Django med uWSGI](/sv/6.1/howto/deployment/wsgi/uwsgi/)
- [Så här använder du Django med Apache och `mod_wsgi`](/sv/6.1/howto/deployment/wsgi/modwsgi/)
- [Hur man autentiserar sig mot Djangos användardatabas från Apache](/sv/6.1/howto/deployment/wsgi/apache-auth/)

## Objektet applikation

Nyckelbegreppet för att distribuera med WSGI är `application` callable som applikationsservern använder för att kommunicera med din kod. Den tillhandahålls vanligen som ett objekt med namnet `application` i en Python-modul som är tillgänglig för servern.

Kommandot [`startproject`](/sv/6.1/ref/django-admin/#django-admin-startproject) skapar en fil `<project_name>/wsgi.py` som innehåller en sådan `application` callable.

Den används både av Djangos utvecklingsserver och i WSGI-produktionsdistributioner.

WSGI-servrar hämtar sökvägen till `application` callable från sin konfiguration. Djangos inbyggda server, nämligen kommandot [`runserver`](/sv/6.1/ref/django-admin/#django-admin-runserver), läser den från inställningen [`WSGI_APPLICATION`](/sv/6.1/ref/settings/#std-setting-WSGI_APPLICATION). Som standard är den inställd på `<project_name>.wsgi.application`, som pekar på anropet `application` i `<project_name>/wsgi.py`.

## Konfigurera inställningsmodulen

När WSGI-servern laddar din applikation måste Django importera inställningsmodulen - det är där hela din applikation definieras.

Django använder miljövariabeln [`DJANGO_SETTINGS_MODULE`](/sv/6.1/topics/settings/#envvar-DJANGO_SETTINGS_MODULE) för att hitta rätt inställningsmodul. Den måste innehålla den prickade sökvägen till inställningsmodulen. Du kan använda ett annat värde för utveckling och produktion; det beror helt på hur du organiserar dina inställningar.

Om den här variabeln inte är inställd, ställer standard `wsgi.py` in den på `mysite.settings`, där `mysite` är namnet på ditt projekt. Det är så [`runserver`](/sv/6.1/ref/django-admin/#django-admin-runserver) upptäcker standardinställningsfilen som standard.

> **Note**
>
> Eftersom miljövariabler är processövergripande fungerar inte detta när du kör flera Django-webbplatser i samma process. Detta händer med mod\_wsgi.
>
> För att undvika detta problem, använd mod\_wsgis daemonläge med varje webbplats i sin egen daemonprocess, eller åsidosätt värdet från miljön genom att tvinga fram `os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"` i din `` wsgi.py` ``.

## Tillämpning av WSGI-mellanprogram

För att tillämpa [**WSGI middleware**](https://peps.python.org/pep-3333/#middleware-components-that-play-both-sides) kan du linda in applikationsobjektet. Till exempel kan du lägga till dessa rader längst ner i `wsgi.py`:

```
from helloworld.wsgi import HelloWorldApplication

application = HelloWorldApplication(application)
```

Du kan också ersätta Djangos WSGI-applikation med en egen WSGI-applikation som senare delegerar till Djangos WSGI-applikation, om du vill kombinera en Django-applikation med en WSGI-applikation från ett annat ramverk.
