# Dokumentasi Django 5.2.8

# Bagaimana menggunakan Django dengan uWSGI

uWSGI adalah cepat, menyembuhkan-sendiri dan wadah peladen aplikasi developer/sysadmin-friendly dikodekan dalam C murni.

Lihat juga

Dokumen uWSGI menawarkan sebuah tutorial 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. Menggunakan pip, pengelola paket Python, anda dapat memasang versi uWSGI apapun dengan perintah tunggal. Sebagai contoh:

    # 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 beroperasi pada model client-server. Peladen jaringan anda (misalnya, nginx, Apache) berkomunikasi dengan proses `django-uwsgi` "worker" untuk melayani isi dinamis.

### Mengkonfigurasi dan memulai peladen uWSGI untuk Django

uWSGI mendukung banyak cara untuk mengkonfigurasi pengolahan. Lihat configuration documentation uWSGI.

Ini adalah sebuah contoh perintah untuk memulai peladen uWSGI:

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

- `env`: Harus kemungkinan mengandung setidaknya `DJANGO_SETTINGS_MODULE`.

- `home`: Jalur pilihan pada proyek lingkungan maya anda.

Contoh berkas konfigurasi 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

Contoh penggunaan berkas konfigurasi ini:

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

    env = LANG=en_US.UTF-8

Lihat bagian Berkas dari panduan acuan Unicode untuk rincian.

Lihat dokumentasi uWSGI pada managing the uWSGI process untuk informasi pada permulaan, pemberhentian dan memuat kembali pekerja-pekerja uWSGI.