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

[uWSGI](https://uwsgi-docs.readthedocs.io/) adalah cepat, menyembuhkan-sendiri dan wadah peladen  aplikasi developer/sysadmin-friendly dikodekan dalam C murni.

> **See also**
>
> Dokumen uWSGI menawarkan sebuah [tutorial](https://uwsgi.readthedocs.io/en/latest/tutorials/Django_and_nginx.html) mencangkup Django, nginx, dan uWSGI (satu kemungkinan penyebaran pengaturan dari banyak). Dokumen dibawah fokus pada bagaimana menggabungkan Django dengan uWSGI.

## Prasyarat: uWSGI

Wiki uWSGI menggambarkan beberapa [installation procedures](https://uwsgi-docs.readthedocs.io/en/latest/Install.html). Menggunakan pip, pengelola paket Python, anda dapat memasang versi uWSGI apapun dengan perintah tunggal. Sebagai contoh:

```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
```

### Model uWSGI

uWSGI operates on a client-server model. Your Web server (e.g., nginx, Apache)
communicates with a `django-uwsgi` "worker" process to serve dynamic content.

### Mengkonfigurasi dan memulai peladen uWSGI  untuk Django

uWSGI mendukung banyak cara untuk mengkonfigurasi pengolahan. Lihat [configuration documentation](https://uwsgi.readthedocs.io/en/latest/Configuration.html) uWSGI.

Ini adalah sebuah contoh perintah untuk memulai peladen uWSGI:

```bash
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
```

Ini menganggap anda mempunyai paket proyek tingkat-tinggi bernama `mysite`, dan dalamnya sebuah modul `mysite/wsgi.py` yang mengandung obyek `application` WSGI. Ini adalah tata letak anda akan punyai jika anda menjalankan `django-admin startproject mysite` (menggunakan nama proyek anda sendiri di tempat `mysite`) dengan versi baru dari Django. Jika berkas ini tidak ada, anda akan butuh membuatnya. Lihat dokumentasi [Bagaimana menyebarkan dengan WSGI](/id/3.0/howto/deployment/wsgi/) untuk isi awal anda harus taruh dalam berkas ini dan apa lagi anda dapat tambahkan ke dia.

Pilihan khusus-Django disini adalah:

- `chdir`: Jalur ke direktori yang dibutuhkan berada di jalur impor Python -- yaitu direktori mengandung paket `mysite`.
- `module`: modul WSGI dogunakan -- mungkin modul  `mysite.wsgi` yang [`startproject`](/id/3.0/ref/django-admin/#django-admin-startproject) buat.
- `env`: mungkin harus mengandung setidaknya `DJANGO_SETTINGS_MODULE`.
- `home`: Optional path to your project virtual environment.

Contoh di berkas konfigurasi:

```bash
[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
```

Contoh penggunaan berkas konfigurasi ini:

```bash
uwsgi --ini uwsgi.ini
```

> **Memperbaiki UnicodeEncodeError untuk mengunggah berkas**
>
> Jika anda mendapatkan sebuah `UnicodeEncodeError` ketika mengunggah berkas-berkas dengan nama-nama berkas yang mengandung karakter bukan ASCII, pastikan uWSGI dikonfigurasikan untuk menerima nama-nama berkas bukan ASCII dengan menambahkan ini ke `uwsgi.ini`:
>
> ```bash
> env = LANG=en_US.UTF-8
> ```
>
> Lihat bagian [Berkas](/id/3.0/ref/unicode/#unicode-files) dari panduan acuan Unicode untuk rincian.

Lihat dokumentasi uWSGI pada [managing the uWSGI process](https://uwsgi-docs.readthedocs.io/en/latest/Management.html) untuk informasi pada permulaan, pemberhentian dan memuat kembali pekerja-pekerja uWSGI.
