---
title: "Bagaimana menyebarkan dengan WSGI"
version: 3.0
locale: id
source: https://docs.djangoproject.com/id/3.0/howto/deployment/wsgi/
canonical: https://djangodocs.dev/id/3.0/howto/deployment/wsgi/
---
# Bagaimana menyebarkan dengan WSGI

Serambi penyebaran utama Django adalah [WSGI](https://wsgi.readthedocs.io/en/latest/), standar Phyton untuk peladen jaringan dan aplikasi.

Django's [`startproject`](/id/3.0/ref/django-admin/#django-admin-startproject) management command sets up a minimal default
WSGI configuration for you, which you can tweak as needed for your project,
and direct any WSGI-compliant application server to use.

Django menyertakan dokumentasi mulai untuk peladen WSGI berikut:

- [Bagaimana menggunakan Django dengan Gunicorn](/id/3.0/howto/deployment/wsgi/gunicorn/)
- [Bagaimana menggunakan Django dengan uWSGI](/id/3.0/howto/deployment/wsgi/uwsgi/)
- [Bagaimana menggunakan Django dengan Apache dan `mod_wsgi`](/id/3.0/howto/deployment/wsgi/modwsgi/)
- [Otentifikasi terhadap pengguna basisdata Django dari Apache](/id/3.0/howto/deployment/wsgi/apache-auth/)

## Obyek `aplikasi`

Konsep kunci dari penyebaran dengan WSGI adalah `application` callable dimana peladen aplikasi gunakan untuk komunikasi dengan kode anda. Dia umumnya disediakan sebagai sebuah obyek dinamai `application` di modul Phyton dapat diakses ke peladen.

Perintah [`startproject`](/id/3.0/ref/django-admin/#django-admin-startproject) membuat sebuah berkas `<project_name>/wsgi.py` yang mengandung seperti callable `aplication`.

Itu digunakan kedua oleh peladen pengembangan Django dan dalam produksi penyebaran WSGI.

Peladen WSGI mengambil jalur pada callable `application` dari konfigurasi mereka. Peladen pasang tetap Django, yaitu perintah [`runserver`](/id/3.0/ref/django-admin/#django-admin-runserver), membacanya dari pengaturan [`WSGI_APPLICATION`](/id/3.0/ref/settings/#std-setting-WSGI_APPLICATION). Secara awalan, dia disetel ke `<project_name>.wsgi.application`, yang menunjuk ke `application` dapat dipanggil dalam `<project_name>/wsgi.py`.

## Konfigurasi modul pengaturan

Ketika peladen WSGI memuat aplikasi anda, Django butuh mengimpor modul pengaturan -- itu dimana aplikasi keseluruhan anda ditentukan.

Django menggunakan lingkungan variabel  [`DJANGO_SETTINGS_MODULE`](/id/3.0/topics/settings/#envvar-DJANGO_SETTINGS_MODULE) untuk menempatkan modul pengaturan yang sesuai. Dia harus mengandung jalur titik pada modul pengaturan. Anda dapat menggunakan nilai berbeda untuk pengembangan dan produksi; dia semua tergantung pada bagaimana anda mengorganisasikan pengaturan anda.

Jika variabel ini belum disetel, nilai awal `wsgi.py` disetel ke `mysite.settings`, dinama `mysite` adalah nama dari proyek anda. Itu bagaimana [`runserver`](/id/3.0/ref/django-admin/#django-admin-runserver) menemukan berkas pengaturan awal secara awal.

> **Note**
>
> Sejak lingkungan variabel diproses luas, ini tidak bekerja ketika anda menjalankan banyak situs Django dalam pengolahan yang sama. Ini terjadi dengan mod\_wsgi.
>
> Untuk menghindari masalah ini, gunakan suasana daemon wsgi dengan setiap situs di pengolahan daemon itu sendiri, atau menimpa nilai dari lingkungan dengan memaksa `os.environ["DJANGO_SETTINGS_MODULE"] = "mysite.settings"` dalam `wsgi.py` anda.

## Memberlakukan middleware WSGI

To apply [WSGI middleware](https://www.python.org/dev/peps/pep-3333/#middleware-components-that-play-both-sides) you can wrap the application object. For instance
you could add these lines at the bottom of `wsgi.py`:

```
from helloworld.wsgi import HelloWorldApplication
application = HelloWorldApplication(application)
```

Anda juga dapar mengganti aplikasi WSGI Django dengan penyesuaian aplikasi WSGI yang diutuskan kemudian pada aplikasi WSGI Django, jika anda ingin menggabungkan aplikasi Django dengan aplikasi WSGI dari kerangka lain.
