Flask adalah kerangka kerja web kecil, ringan, dan mikro yang ditulis dengan Python. Ini memungkinkan Anda untuk mengembangkan aplikasi web dengan mudah tanpa alat atau pustaka apa pun. Aplikasi web ini dapat berupa blog, halaman wiki, halaman web, aplikasi kalender berbasis web, atau situs web komersial. Sederhana, mudah digunakan, mudah dipelajari, dan ramah bagi pemula karena tidak memerlukan ketergantungan apa pun.
Dalam tutorial ini, kami akan menunjukkan cara men-deploy aplikasi Flask dengan Gunicorn dan Nginx di Ubuntu 20.04.
Prasyarat
- VPS Ubuntu 20.04 dengan akses root diaktifkan, atau pengguna dengan hak sudo.
Masuk dan Perbarui Paket
Pertama, kita harus masuk ke server menggunakan SSH. Anda dapat melakukannya dengan memasukkan perintah ini:
ssh root@IP_Address -p Port_Number
Ingatlah untuk mengganti root
dengan nama pengguna Anda jika Anda tidak menggunakan pengguna root. Ubah IP_Address
dan Port_Number
sesuai dengan alamat IP server Anda dan nomor port SSH.
Setelah Anda masuk, Anda harus memperbarui semua paket Anda ke versi terbaru yang tersedia.
apt-get update -y
apt-get upgrade -y
Setelah semua paket diperbarui, mulai ulang server Anda untuk menerapkan perubahan konfigurasi.
Instal Dependensi yang Diperlukan
Flask adalah aplikasi berbasis python. Jadi Python dan dependensi lain yang diperlukan harus diinstal di server Anda. Jika belum terinstal, Anda dapat menginstal semuanya dengan perintah berikut:
apt-get install python3 python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools -y
Setelah semua dependensi terinstal, instal paket lingkungan virtual Python menggunakan perintah berikut:
apt-get install python3-venv -y
Setelah terinstal, Anda dapat melanjutkan ke langkah berikutnya.
Instal Server Web Nginx
Dalam tutorial ini, kita akan menggunakan Nginx sebagai reverse proxy untuk aplikasi Flask. Jadi, Anda perlu menginstal paket server web Nginx ke server Anda. Anda dapat menginstalnya menggunakan perintah berikut:
apt-get install nginx -y
Setelah Nginx terinstal, mulai dan aktifkan layanan Nginx menggunakan perintah berikut:
systemctl start nginx systemctl enable nginx
Membuat Lingkungan Virtual untuk Aplikasi Flask
Selanjutnya, Anda perlu membuat lingkungan virtual untuk aplikasi Flask.
Pertama, buat direktori proyek dengan perintah berikut:
mkdir ~/project
Selanjutnya, ubah direktori ke proyek Anda dan buat lingkungan virtual Python dengan perintah berikut:
cd ~/project python3 -m venv venv
Selanjutnya, aktifkan lingkungan Anda dengan perintah berikut:
source venv/bin/activate
Selanjutnya install Gunicorn, Flask, dan komponen lainnya dengan perintah berikut:
pip install wheel pip install gunicorn flask
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Buat Aplikasi Flask
Selanjutnya, Anda perlu membuat contoh aplikasi Flask untuk proyek Anda. Jalankan perintah berikut untuk membuatnya di dalam direktori proyek Anda:
nano ~/project/flaskapp.py
Tambahkan kode berikut:
from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Welcome to Flask Application!" if __name__ == "__main__": app.run(host='0.0.0.0')
Simpan dan tutup file kemudian verifikasi aplikasi Anda dengan perintah berikut:
cd ~/project/ python3 flaskapp.py
Jika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
* Serving Flask app 'flaskapp' (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on all addresses. WARNING: This is a development server. Do not use it in a production deployment. * Running on http://69.28.84.227:5000/ (Press CTRL+C to quit)
Tekan CTRL+C untuk menutup aplikasi.
Buat Titik Masuk WSGI untuk Gunicorn
Selanjutnya, Anda perlu membuat titik masuk WSGI untuk melayani aplikasi Anda melalui Gunicorn.
Jalankan perintah berikut untuk membuatnya:
nano ~/project/wsgi.py
Tambahkan baris berikut:
from flaskapp import app if __name__ == "__main__": app.run()
Simpan dan tutup file kemudian verifikasi apakah Gunicorn dapat melayani aplikasi dengan benar menggunakan perintah di bawah ini:
cd ~/project/ gunicorn --bind 0.0.0.0:5000 wsgi:app
Jika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
[2021-12-23 10:37:15 +0000] [9352] [INFO] Starting gunicorn 20.1.0 [2021-12-23 10:37:15 +0000] [9352] [INFO] Listening at: http://0.0.0.0:5000 (9352) [2021-12-23 10:37:15 +0000] [9352] [INFO] Using worker: sync [2021-12-23 10:37:15 +0000] [9354] [INFO] Booting worker with pid: 9354
Tekan CTRL+C untuk menghentikan aplikasi. Selanjutnya, nonaktifkan dari lingkungan virtual Python dengan perintah berikut:
deactivate
Buat File Layanan Systemd untuk Aplikasi Flask
Selanjutnya, Anda perlu membuat file unit systemd untuk aplikasi Flask. Anda dapat membuatnya dengan perintah berikut:
nano /etc/systemd/system/flask.service
Tambahkan baris berikut:
[Unit] Description=Gunicorn instance to serve Flask After=network.target [Service] User=root Group=www-data WorkingDirectory=/root/project Environment="PATH=/root/project/venv/bin" ExecStart=/root/project/venv/bin/gunicorn --bind 0.0.0.0:5000 wsgi:app [Install] WantedBy=multi-user.target
Simpan dan tutup file, lalu atur kepemilikan dan izin yang tepat untuk proyek labu:
chown -R root:www-data /root/project chmod -R 775 /root/project
Selanjutnya, muat ulang daemon systemd dengan perintah berikut:
systemctl daemon-reload
Selanjutnya, mulai layanan flask dan aktifkan untuk memulai pada sistem reboot:
systemctl start flask systemctl enable flask
Selanjutnya, verifikasi status labu dengan perintah berikut:
systemctl status flask
Keluaran:
● flask.service - Gunicorn instance to serve Flask Loaded: loaded (/etc/systemd/system/flask.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2021-12-23 10:38:26 UTC; 8s ago Main PID: 9376 (gunicorn) Tasks: 2 (limit: 2353) Memory: 27.8M CGroup: /system.slice/flask.service ├─9376 /root/project/venv/bin/python3 /root/project/venv/bin/gunicorn --bind 0.0.0.0:5000 wsgi:app └─9393 /root/project/venv/bin/python3 /root/project/venv/bin/gunicorn --bind 0.0.0.0:5000 wsgi:app Dec 23 10:38:26 ubuntu2004 systemd[1]: Started Gunicorn instance to serve Flask. Dec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Starting gunicorn 20.1.0 Dec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Listening at: http://0.0.0.0:5000 (9376) Dec 23 10:38:26 ubuntu2004 gunicorn[9376]: [2021-12-23 10:38:26 +0000] [9376] [INFO] Using worker: sync Dec 23 10:38:26 ubuntu2004 gunicorn[9393]: [2021-12-23 10:38:26 +0000] [9393] [INFO] Booting worker with pid: 9393
Konfigurasi Nginx sebagai Proxy Terbalik untuk Aplikasi Flask
Selanjutnya, Anda perlu mengkonfigurasi Nginx sebagai proxy terbalik untuk melayani aplikasi Flask melalui port 80. Untuk melakukannya, buat file konfigurasi virtual host Nginx:
nano /etc/nginx/conf.d/flask.conf
Tambahkan baris berikut:
server { listen 80; server_name flask.example.com; location / { include proxy_params; proxy_pass http://127.0.0.1:5000; } }
Simpan dan tutup file kemudian verifikasi Nginx untuk kesalahan sintaks:
nginx -t
Anda akan melihat output berikut:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Terakhir, restart layanan Nginx untuk menerapkan perubahan:
systemctl restart nginx
Akses Aplikasi Flask
Pada titik ini, aplikasi Flask Anda diinstal, dikonfigurasi, dan dihosting dengan proxy Nginx. Sekarang Anda dapat mengaksesnya menggunakan URL http://flask.example.com . Anda akan melihat halaman berikut:
Selamat! Anda telah berhasil men-deploy aplikasi Flask dengan Gunicorn dan Nginx di server Ubuntu 20.04.
Namun, jika Anda adalah salah satu pelanggan Managed Ubuntu Hosting kami, atau jika Anda menggunakan salah satu paket Managed VPS Hosting kami, Anda tidak perlu menginstal aplikasi Flask di Ubuntu 20.04 VPS Anda – cukup tanyakan kepada admin kami, duduk, dan santai. Admin kami akan segera menginstal aplikasi Flask di Ubuntu 20.04 (atau OS lain yang Anda miliki bersama kami) untuk Anda.
PS. Jika Anda menyukai posting ini tentang cara menginstal aplikasi Flask di VPS Ubuntu 20.04, silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di bawah ini, atau cukup tinggalkan komentar di bagian komentar. Terima kasih.