
Cara Menjalankan Flask dengan Gunicorn dan Nginx di Ubuntu 16.04
Dalam tutorial ini, kita akan membahas cara menjalankan aplikasi Flask menggunakan Gunicorn sebagai server WSGI dan Nginx sebagai reverse proxy di Ubuntu 16.04. Flask adalah framework web yang populer untuk membangun aplikasi web berbasis Python, sementara Gunicorn dan Nginx memberikan kinerja yang optimal dan manajemen permintaan yang baik.
Prasyarat
- Ubuntu 16.04 terinstal.
- Akses root atau sudo untuk menginstal paket.
- Paket Python dan pip harus terinstal.
- Pengetahuan dasar tentang penggunaan terminal Linux.
Langkah Utama
1. Memperbarui Sistem
Langkah pertama adalah memastikan sistem Anda diperbarui dengan menjalankan perintah berikut:
sudo apt update && sudo apt upgrade -y
2. Menginstal Flask dan Gunicorn
Selanjutnya, kita perlu menginstal Flask dan Gunicorn. Anda dapat menginstalnya menggunakan pip seperti ini:
sudo apt install python3-pip
pip3 install Flask gunicorn
3. Membuat Aplikasi Flask
Selanjutnya, buat file Python untuk aplikasi Flask kita. Misalnya, buat direktori myapp dan file app.py di dalamnya:
mkdir ~/myapp
nano ~/myapp/app.py
Tambahkan kode berikut ke dalam file app.py:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == "__main__":
app.run() # Hanya untuk pengujian, tidak untuk produksi
4. Menjalankan Aplikasi dengan Gunicorn
Untuk menjalankan aplikasi Flask dengan Gunicorn, gunakan perintah berikut:
cd ~/myapp
gunicorn --bind 0.0.0.0:8000 app:app
Anda sekarang dapat mengakses aplikasi Anda melalui http://your_server_ip:8000.
5. Menginstal dan Mengonfigurasi Nginx
Instal Nginx dengan perintah berikut:
sudo apt install nginx
Setelah Nginx terinstal, kita perlu mengonfigurasi Nginx untuk meneruskan permintaan ke Gunicorn. Buat file konfigurasi baru di /etc/nginx/sites-available/myapp:
sudo nano /etc/nginx/sites-available/myapp
Tambahkan konfigurasi berikut ke dalam file:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Sesuaikan server_name dengan domain atau IP Anda.
6. Mengaktifkan Konfigurasi Nginx
Untuk mengaktifkan konfigurasi yang baru saja kita buat, buat symlink ke direktori sites-enabled:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled
Periksa konfigurasi Nginx untuk memastikan tidak ada kesalahan:
sudo nginx -t
Jika tidak ada kesalahan, restart Nginx:
sudo systemctl restart nginx
Konfigurasi Lanjutan
Setelah mengatur aplikasi dan server, Anda mungkin ingin mempertimbangkan beberapa pengaturan tambahan untuk meningkatkan keamanan dan kinerja aplikasi Anda.
1. Menyediakan HTTPS dengan Let's Encrypt
Untuk menyajikan aplikasi Anda melalui HTTPS, Anda dapat menggunakan Let's Encrypt:
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain
Ikuti petunjuk di layar untuk mengonfigurasi HTTPS secara otomatis di Nginx.
2. Mengelola Gunicorn dengan Systemd
Untuk menjalankan Gunicorn sebagai layanan yang dikelola oleh systemd, buat file service:
sudo nano /etc/systemd/system/myapp.service
Tambahkan konfigurasi berikut:
[Unit]
Description=gunicorn daemon for myapp
After=network.target
[Service]
User=your_username
Group=www-data
WorkingDirectory=/home/your_username/myapp
Environment="PATH=/home/your_username/.local/bin:/usr/bin"
ExecStart=/home/your_username/.local/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/your_username/myapp/myapp.sock app:app
[Install]
WantedBy=multi-user.target
Jangan lupa untuk mengganti your_username dengan nama pengguna Anda.
Setelah itu, aktifkan layanan dan mulai:
sudo systemctl start myapp
sudo systemctl enable myapp
Pastikan untuk mengubah konfigurasi Nginx untuk menggunakan soket UNIX:
proxy_pass http://unix:/home/your_username/myapp/myapp.sock;
Best Practices
- Selalu jalankan aplikasi web dalam lingkungan virtual untuk menghindari konflik antara paket.
- Cadangkan data secara teratur untuk menghindari kehilangan data.
- Aktifkan firewall dengan UFW untuk membatasi akses ke server Anda.
- Monitor log aplikasi dan server untuk mendeteksi masalah lebih awal.
- Perbarui sistem dan paket secara berkala untuk menjaga keamanan.
Troubleshooting
Jika Anda mengalami masalah, berikut adalah beberapa langkah yang dapat Anda lakukan:
- Periksa log Nginx di
/var/log/nginx/error.log. - Periksa log Gunicorn untuk error dengan menjalankan
journalctl -u myapp. - Pastikan bahwa firewall Anda tidak memblokir port 80 dan 443.
- Gunakan
curluntuk menguji endpoint aplikasi Anda.
Kesimpulan
Kini Anda telah berhasil menjalankan aplikasi Flask menggunakan Gunicorn dan Nginx di Ubuntu 16.04. Dengan mengikuti langkah-langkah di atas, Anda dapat memastikan aplikasi Anda berjalan dengan baik dan aman. Anda juga telah belajar cara melakukan konfigurasi lanjutan untuk meningkatkan kinerja dan keamanan aplikasi Anda. Selamat mencoba!
Verifikasi Teknis
Panduan ini disusun berdasarkan referensi teknis terbaru. Namun, konfigurasi server dapat bervariasi. Lihat sumber referensi asli →
📚 Artikel Terkait

Cara Menjalankan Django dengan Gunicorn dan Nginx di Ubuntu 16.04
469 kata • Baca selengkapnya →
Cara Deploy Django 3 di Ubuntu 18.04
735 kata • Baca selengkapnya →

Cara Install Collabora Online dengan Nginx di Ubuntu 24.04
616 kata • Baca selengkapnya →
Cara Install Django 3 di Ubuntu 18.04
532 kata • Baca selengkapnya →