Cara Menjalankan Flask dengan Gunicorn dan Nginx di Ubuntu 16.04

Cara Menjalankan Flask dengan Gunicorn dan Nginx di Ubuntu 16.04

Pada artikel Cara Install Flask di Ubuntu 16.04, Flask dijalankan dengan menggunakan developement server. Tutorial kali ini akan membahas tentang cara menjalankan Flask dengan menggunakan Gunicorn dikombinasikan dengan Nginx di distro Linux Ubuntu 16.04. Ini juga merupakan salah satu cara dalam deployment Flask di server online / VPS.

Gunicorn (Green Unicorn) adalah sebuah WSGI (Web Server Gateway Interface) HTTP Server untuk bahasa pemrograman Python. Gunicorn mengimplementasikan PEP3333 sebuah standar spesifikasi WSGI server sehingga dapat menjalankan aplikasi web Python yang juga mengimplementasikan standar tersebut. Misalnya framework Django, Flask, atau Bottle.

Komunikasi Nginx, Gunicorn, dan Flask (sumber: codingnetworker.com)

Penghubung pertama antara request dari browser pengunjung dengan aplikasi web dilayani oleh Nginx karena berjalan pada port 80, port default dari HTTP. Jika file yang direquest adalah file static seperti gambar, html, css, dan js atau disebut juga frontend maka tetap Nginx yang bekerja. Namun jika yang direquest adalah Flask atau backend maka Nginx menghubungi Gunicorn melalui reverse proxy atau unix-socket. Respon dari Flask dikirim ke Gunicorn lalu ke Nginx dan terakhir ditampilkan pada browser.

Install pip dan Nginx

Install pip dan Nginx jika menggunakan Python 2

Install pip dan Nginx jika menggunakan Python 3

Membuat Virtual Environment

Selanjutnya membuat virtual environment untuk mengisolasi aplikasi Flask dari Python sistem operasi utama.

Install virtualenv Python 2

Install virtualenv Python 3

Membuat folder project Flask

Membuat virtualenv
Jika ingin menggunakan Python 2 pada virtualenv

Jika ingin menggunakan Python 3 pada virtualenv

Mengaktifkan virtualenv

Menginstall Flask dan Gunicorn

Membuat aplikasi Flask sederhana, menampilkan tulisan

Isinya

Menjalankan aplikasi FLask dengan development server

Browsing http://localhost:5000.
Jika berhasil menampilkan tulisan Belajar Flask lanjut ke tahap berikutnya.

Membuat file WSGI

Isinya

Menguji menjalankan aplikasi dengan Gunicorn

Nonaktifkan virtual environment

Membuat service untuk aplikasi Flask

Service ini dibuat agar Gunicorn secara otomatis sejak boot menjalankan aplikasi Flask.

Isinya

Jalankan service dan enable agar aktif sejak boot

Konfigurasi Nginx

Tahap berikutnya mengkonfigurasi Nginx agar berkomunikasi dengan Gunicorn melalui proxy.

Isinya

Mengaktifkan virtual host/blok konfigurasi Nginx yang baru saja dibuat dengan membuat link ke sites-enabled.

Menguji apakah ada konfigurasi Nginx yang salah.

Jika tidak ada kesalahan, restart service nginx

Terakhir browsing http://IP_SERVER_ATAU_DOMAIN

selamat mencoba:)

6 Comments

  1. Apakah setelah service belajar-flask aktif, bisa langsung diakses dengan menggunakn port 5000? atau harus set nginx dulu atau harus restart dulu atau gimana?

    soalnya saya sudah mengikuti tutorial dengan 1 perbedaan
    -port nginx saya pakai 85, sudah ufw allow 85

    tetapi app tidak bisa diakses dari port 85, termasuk 5000, takutnya saya salah persepsi terkati si service itu, terima kasih

      • wah. saya gagal menjalankan service nya mas. Ada error begini
        ● namaservice.service – Gunicorn untuk menjalankan aplikasi
        Loaded: loaded (/etc/systemd/system/namaservice.service; enabled; vendor preset: enabled)
        Active: failed (Result: exit-code) since Mon 2022-02-28 13:54:29 UTC; 44s ago
        Process: 71156 ExecStart=/direktori/flask/tujuan//env/bin/gunicorn –workers 3 –bind unix:namaservice.sock -m 007 wsgi:app (code=exited, status=3)
        Main PID: 71156 (code=exited, status=3)

        namaservice saya ubah untuk keperluan postingan ini

Leave a Reply

Your email address will not be published. Required fields are marked *