15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai
01.11.2024

Cara Menginstal Flask di Hosting: Panduan Lengkap Langkah demi Langkah

Flask adalah kerangka kerja web yang ringan dan fleksibel untuk Python yang memberdayakan pengembang untuk membangun dan menerapkan aplikasi web dengan cepat dan efisien. Baik Anda meluncurkan proyek pribadi, REST API, atau layanan web skala penuh, mengetahui cara menginstal dan mengonfigurasi Flask dengan benar di lingkungan hosting adalah keterampilan penting. Panduan komprehensif ini memandu Anda melalui setiap langkah — dari penyiapan server hingga penerapan produksi dengan Gunicorn dan Nginx.

1. Prasyarat

Sebelum menyelami proses instalasi, pastikan Anda memiliki hal-hal berikut:

Lingkungan Hosting yang Mendukung Python

Anda memerlukan layanan hosting yang memberi Anda kontrol penuh atas lingkungan server Anda. Paket hosting bersama sering kali membatasi eksekusi Python, jadi untuk penerapan Flask, paket VPS Hosting atau Dedicated Server sangat disarankan. Opsi-opsi ini memberi Anda akses root, kemampuan manajemen paket penuh, dan fleksibilitas untuk mengonfigurasi stack Anda persis seperti yang dibutuhkan.

Akses SSH

Anda akan memerlukan akses SSH untuk terhubung ke server jarak jauh Anda dan menjalankan perintah. Sebagian besar lingkungan VPS dan server khusus berbasis Linux mendukung ini secara default.

Python Terinstal

Python 3.8 atau lebih tinggi direkomendasikan. Sebagian besar lingkungan hosting modern dilengkapi dengan Python yang sudah terinstal sebelumnya, tetapi kami akan memverifikasinya selama penyiapan.

Opsional: Nama Domain

Jika Anda berencana membuat aplikasi Flask Anda dapat diakses secara publik melalui domain daripada alamat IP mentah, pertimbangkan untuk mendaftarkan satu melalui Domain Registration sebelum Anda memulai.

2. Menghubungkan ke Server Anda melalui SSH

Buka terminal Anda (Linux/macOS) atau klien SSH seperti PuTTY (Windows) dan hubungkan ke server Anda:

ssh username@your_server_ip

Ganti username dengan nama pengguna server aktual Anda dan your_server_ip dengan alamat IP publik server Anda.

Setelah terhubung, verifikasi bahwa Python 3 tersedia:

python3 --version

Anda akan melihat output serupa dengan Python 3.10.x. Jika Python tidak terinstal, lanjutkan untuk menginstalnya:

sudo apt install python3

3. Memperbarui Server Anda

Sebelum menginstal paket apa pun, praktik terbaik adalah memperbarui daftar paket sistem Anda dan meningkatkan paket yang ada ke versi terbaru mereka:

sudo apt update
sudo apt upgrade -y

Ini memastikan Anda bekerja dengan versi paling stabil dan aman dari semua dependensi.

4. Menginstal Flask

Langkah 1: Instal pip

pip adalah manajer paket Python dan diperlukan untuk menginstal Flask dan pustaka Python lainnya. Instal jika belum ada:

sudo apt install python3-pip -y

Verifikasi instalasi:

pip3 --version

Langkah 2: Buat Direktori Proyek

Atur aplikasi Anda dengan membuat direktori khusus:

mkdir my_flaskapp
cd my_flaskapp

Langkah 3: Siapkan Lingkungan Virtual

Menggunakan lingkungan virtual mengisolasi dependensi proyek Anda dari instalasi Python global, mencegah konflik versi dan menjaga server Anda tetap bersih:

sudo apt install python3-venv -y
python3 -m venv venv

Aktifkan lingkungan virtual:

source venv/bin/activate

Prompt terminal Anda akan berubah untuk menunjukkan bahwa lingkungan virtual aktif, biasanya menampilkan (venv) di awal baris.

Langkah 4: Instal Flask

Dengan lingkungan virtual diaktifkan, instal Flask menggunakan pip:

pip install Flask

Konfirmasi instalasi:

flask --version

Anda akan melihat versi Flask bersama dengan versi Python dan Werkzeug.

5. Membuat Aplikasi Flask Sederhana

Langkah 1: Buat File Aplikasi

Buat file baru bernama app.py di dalam direktori proyek Anda:

nano app.py

Langkah 2: Tulis Aplikasi Flask Anda

Tambahkan kode aplikasi Flask minimal berikut:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, World! Flask is running successfully."

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

Penjelasan kode:

  • Flask(__name__) — Membuat instance aplikasi Flask baru.
  • @app.route('/') — Mendefinisikan rute URL untuk halaman beranda.
  • app.run(host='0.0.0.0', port=5000) — Memulai server pengembangan, membuatnya dapat diakses di semua antarmuka jaringan di port 5000.

Langkah 3: Simpan dan Keluar

Tekan CTRL + X, kemudian Y, dan tekan Enter untuk menyimpan file dan keluar dari editor nano.

6. Menjalankan Aplikasi Flask Anda dalam Mode Pengembangan

Mulai server pengembangan Flask untuk menguji aplikasi Anda:

python app.py

Aplikasi Anda sekarang akan dapat diakses di browser web di:

http://your_server_ip:5000

> Penting: Server pengembangan Flask bawaan tidak cocok untuk penggunaan produksi. Ini adalah single-threaded, tidak dioptimalkan untuk kinerja, dan kurang fitur keamanan penting. Selalu gunakan server WSGI tingkat produksi untuk penerapan langsung.

7. Menerapkan Flask di Lingkungan Produksi dengan Gunicorn

Untuk penerapan produksi, Gunicorn (Green Unicorn) adalah server HTTP WSGI Python yang paling banyak digunakan. Ini menangani beberapa permintaan bersamaan secara efisien dan terintegrasi dengan mulus dengan Nginx.

Langkah 1: Instal Gunicorn

Dengan lingkungan virtual masih aktif, instal Gunicorn:

pip install gunicorn

Langkah 2: Jalankan Aplikasi Anda dengan Gunicorn

Luncurkan aplikasi Flask Anda menggunakan Gunicorn, mengikatnya ke localhost di port 8000:

gunicorn app:app -b 127.0.0.1:8000 --workers 3

Penjelasan parameter:

  • app:app — Merujuk ke objek app di dalam file app.py.
  • -b 127.0.0.1:8000 — Mengikat Gunicorn ke localhost di port 8000 (Nginx akan menangani lalu lintas eksternal).
  • --workers 3 — Menghasilkan 3 proses pekerja untuk menangani permintaan bersamaan. Formula umum adalah (2 × CPU cores) + 1.

Langkah 3: Jalankan Gunicorn sebagai Layanan Systemd (Disarankan)

Untuk memastikan Gunicorn dimulai secara otomatis saat server boot ulang, buat file layanan systemd:

sudo nano /etc/systemd/system/my_flaskapp.service

Tambahkan konfigurasi berikut:

[Unit]
Description=Gunicorn instance to serve my_flaskapp
After=network.target

[Service]
User=your_username
Group=www-data
WorkingDirectory=/home/your_username/my_flaskapp
Environment="PATH=/home/your_username/my_flaskapp/venv/bin"
ExecStart=/home/your_username/my_flaskapp/venv/bin/gunicorn app:app -b 127.0.0.1:8000 --workers 3

[Install]
WantedBy=multi-user.target

Ganti your_username dengan nama pengguna server aktual Anda. Kemudian aktifkan dan mulai layanan:

sudo systemctl daemon-reload
sudo systemctl start my_flaskapp
sudo systemctl enable my_flaskapp

Periksa status layanan:

sudo systemctl status my_flaskapp

8. Mengonfigurasi Nginx sebagai Reverse Proxy

Nginx bertindak sebagai reverse proxy, berada di depan Gunicorn dan menangani semua lalu lintas HTTP/HTTPS yang masuk. Pengaturan ini meningkatkan kinerja, memungkinkan penghentian SSL, dan memungkinkan Anda melayani file statis secara efisien.

Langkah 1: Instal Nginx

sudo apt install nginx -y

Langkah 2: Buat File Konfigurasi Nginx

Buat konfigurasi blok server baru untuk aplikasi Flask Anda:

sudo nano /etc/nginx/sites-available/my_flaskapp

Tambahkan konfigurasi berikut:

server {
    listen 80;
    server_name your_domain_or_ip;  # Replace with your domain or server 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;
    }

    location /static {
        alias /home/your_username/my_flaskapp/static;
        expires 30d;
    }
}

Langkah 3: Aktifkan Konfigurasi

Buat tautan simbolis untuk mengaktifkan situs dan uji konfigurasi Nginx:

sudo ln -s /etc/nginx/sites-available/my_flaskapp /etc/nginx/sites-enabled
sudo nginx -t

Jika pengujian mengembalikan syntax is ok dan test is successful, mulai ulang Nginx:

sudo systemctl restart nginx

Aplikasi Flask Anda sekarang dapat diakses di http://your_domain_or_ip di port 80.

9. Mengamankan Aplikasi Flask Anda dengan SSL/HTTPS

Menjalankan aplikasi Anda melalui HTTPS tidak lagi opsional — ini adalah persyaratan fundamental untuk keamanan, kepercayaan pengguna, dan peringkat SEO. Anda dapat memperoleh dan menginstal sertifikat SSL gratis menggunakan Certbot dengan Let’s Encrypt, atau membeli sertifikat premium melalui SSL Certificates untuk validasi dan cakupan garansi yang ditingkatkan.

Instal Certbot dan Dapatkan Sertifikat SSL Gratis

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com -d www.your_domain.com

Certbot akan secara otomatis memodifikasi konfigurasi Nginx Anda untuk mengaktifkan HTTPS dan menyiapkan pembaruan sertifikat otomatis.

Verifikasi pembaruan otomatis dikonfigurasi:

sudo certbot renew --dry-run

10. Konfigurasi Firewall

Pastikan firewall server Anda memungkinkan lalu lintas di port yang diperlukan:

sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status

Nginx Full membuka port 80 (HTTP) dan port 443 (HTTPS).

11. Pemecahan Masalah Umum

MasalahPenyebab KemungkinanSolusi
502 Bad GatewayGunicorn tidak berjalanPeriksa sudo systemctl status my_flaskapp
Permission denied di soketIzin file tidak benarPastikan pengguna Nginx memiliki akses ke direktori aplikasi
Aplikasi Flask tidak ditemukanDirektori kerja salah di file layananPeriksa ulang jalur WorkingDirectory di konfigurasi systemd
Port 5000 tidak dapat diaksesFirewall memblokir portBuka port dengan sudo ufw allow 5000 (hanya dev)
ModuleNotFoundErrorLingkungan virtual tidak diaktifkanPastikan
15%

Hemat 15% di Semua Layanan Hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode:

Skills
Memulai