in FOSS, Programing

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

referensi:
fullstackpython.com
digitalocean.com