DevOps

Panduan Deploy FastAPI dan Nginx Proxy Manager di Ubuntu 24.04: Arsitektur Cepat & Ramah SEO

A
Arfan Zaky Hifdillah
• 5 menit baca • 9 views
Panduan Deploy FastAPI dan Nginx Proxy Manager di Ubuntu 24.04: Arsitektur Cepat & Ramah SEO

Mengapa Menggabungkan FastAPI dan Nginx Proxy Manager?

FastAPI dikenal sebagai salah satu framework web Python tercepat berkat dukungan asynchronous native melalui ASGI (Asynchronous Server Gateway Interface) dan Uvicorn. Namun, menjalankan aplikasi FastAPI langsung di server produksi membutuhkan layer reverse proxy yang aman, stabil, dan mudah dikelola.

Di sinilah Nginx Proxy Manager (NPM) menjadi solusi ideal. Nginx Proxy Manager menyediakan antarmuka web modern untuk mengelola virtual host Nginx, perutean subpath, manajemen sertifikat SSL Let's Encrypt otomatis, serta perlindungan header HTTP keamanan.

Dalam panduan ini, kita akan membahas arsitektur produksi lengkap dari pembuatan service Systemd hingga konfigurasi reverse proxy Nginx yang optimal untuk crawler mesin pencari.


Langkah 1: Persiapan Environment Python di Ubuntu 24.04

Pastikan paket python3-venv dan python3-pip telah terpasang di sistem operasi Ubuntu Anda:

sudo apt update && sudo apt install -y python3-venv python3-pip
mkdir -p /var/www/my-fastapi-app
cd /var/www/my-fastapi-app
python3 -m venv venv
./venv/bin/pip install --upgrade pip fastapi uvicorn jinja2

Langkah 2: Membuat Service Systemd untuk Uvicorn

Agar aplikasi FastAPI berjalan stabil di background dan otomatis melakukan restart jika server reboot, buat unit file systemd:

# /etc/systemd/system/fastapi-app.service
[Unit]
Description=FastAPI Uvicorn Application
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/var/www/my-fastapi-app
ExecStart=/var/www/my-fastapi-app/venv/bin/uvicorn main:app --host 127.0.0.1 --port 8092 --workers 2
Restart=always
RestartSec=3
Environment=PYTHONUNBUFFERED=1

[Install]
WantedBy=multi-user.target

Aktifkan service menggunakan perintah berikut:

sudo systemctl daemon-reload
sudo systemctl enable fastapi-app
sudo systemctl start fastapi-app

Langkah 3: Konfigurasi Reverse Proxy di Nginx Proxy Manager

Buka dashboard Nginx Proxy Manager Anda (biasanya di port 81). Tambahkan Proxy Host atau atur Custom Location untuk subpath:

  1. Domain Names: Tentukan domain utama atau subdomain Anda.
  2. Forward Hostname / IP: Masukkan alamat host internal (misalnya IP host atau gateway Docker).
  3. Forward Port: 8092.
  4. Websockets Support: Aktifkan untuk koneksi duplex jika diperlukan.

Untuk mempertahankan IP asli pengunjung dan protokol HTTPS pada aplikasi FastAPI, pastikan header forwarder disematkan pada Nginx:

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;

Header X-Forwarded-Proto sangat krusial agar FastAPI mengetahui bahwa request datang melalui koneksi aman (HTTPS), sehingga URL kanonis dan redirect tidak mengalami loop HTTP tidak aman.


Langkah 4: Optimasi SEO dan Kecepatan Akses (SSR)

Setelah pipeline deploy aktif, optimalkan faktor teknis SEO:

  1. Server-Side Rendering: Kembalikan full HTML menggunakan Jinja2 Templates saat route diakses, bukan sekadar JSON mentah.
  2. Sitemap Dinamis: Pastikan endpoint sitemap seperti /sitemap.xml diperbarui setiap ada artikel baru.
  3. Data Terstruktur Schema.org: Pasang tag JSON-LD skema BlogPosting agar Google Search Console mengenali entitas artikel Anda secara tepat.

Baca juga ulasan kami sebelumnya mengenai Strategi Optimasi SEO Modern untuk Aplikasi Berbasis Cloud dan AI untuk memperdalam implementasi Core Web Vitals.


Ringkasan

Kombinasi FastAPI, Systemd, dan Nginx Proxy Manager di Ubuntu 24.04 memberikan keseimbangan sempurna antara performa runtime Python yang tinggi, kemudahan sertifikasi SSL, dan visibilitas SEO organik yang superior.

A

Arfan Zaky Hifdillah

Tim riset dan arsitek teknologi di Cloudverra. Berfokus pada automasi infrastruktur, cloud computing, keamanan informasi, dan rekayasa platform cerdas.