Arsitektur Deployment Flask
Untuk menjalankan aplikasi Flask di lingkungan production, Anda tidak boleh menggunakan server bawaan Flask (app.run()) karena tidak dirancang untuk menangani konkurensi tinggi dan keamanan. Standar industri menggunakan kombinasi Gunicorn sebagai WSGI HTTP Server dan Nginx sebagai Reverse Proxy.
Langkah 1: Instalasi Dependensi
Pastikan server Ubuntu/Debian Anda telah diperbarui. Instal Python, pip, venv, dan Nginx.
sudo apt update
sudo apt install python3-pip python3-venv nginx
python3 -m venv venv
source venv/bin/activate
pip install flask gunicornLangkah 2: Konfigurasi Gunicorn
Buat file wsgi.py sebagai entry point aplikasi Anda:
from app import app
if __name__ == "__main__":
app.run()Uji Gunicorn dengan perintah: gunicorn --bind 0.0.0.0:8000 wsgi:app. Jika berhasil, buat Systemd service agar aplikasi berjalan di latar belakang.
Langkah 3: Konfigurasi Nginx sebagai Reverse Proxy
Buat file konfigurasi di /etc/nginx/sites-available/flask_app:
server {
listen 80;
server_name domain_anda.com;
location / {
include proxy_params;
proxy_pass http://unix:/home/user/app/app.sock;
}
}| Komponen | Fungsi Utama | Peran di Production |
|---|---|---|
| Flask | Framework Aplikasi | Logika Bisnis |
| Gunicorn | WSGI Server | Menangani request Python |
| Nginx | Reverse Proxy | Buffer, SSL, Static Files |
| Systemd | Process Manager | Auto-restart & Monitoring |
Troubleshooting Umum
- Permission Denied: Pastikan user Nginx memiliki akses ke direktori proyek.
- 502 Bad Gateway: Biasanya terjadi karena Gunicorn tidak berjalan atau socket file tidak ditemukan. Cek status dengan
systemctl status flask_app. - Static Files: Gunakan Nginx untuk melayani file statis (CSS/JS) secara langsung agar performa lebih optimal.
🔍 Orang Lain Juga Mencari Ini
Gunicorn Vs Uwsgi
Nginx Reverse Proxy Flask
Systemd Service Flask
Flask Production Server
Deploy Python Web App
Nginx Static Files Flask
Gunicorn Worker Configuration
Flask Deployment Best Practices
Ubuntu Nginx Flask Setup
Python Virtual Environment Production
Ssl Certificate Nginx Flask
Gunicorn Bind Socket
Flask App Performance Tuning
Nginx Proxy_pass Configuration
Linux Server Security Flask