Dalam arsitektur mikroservis dan deployment web modern, aplikasi internal sering kali berjalan di berbagai port lokal (misalnya Docker container di port 3000, 8080, atau 5000). Menggunakan Nginx Reverse Proxy, Anda dapat mengarahkan domain publik ke aplikasi internal dengan aman, menerapkan load balancing multi-server, serta mengotomatisasi sertifikat enkripsi SSL gratis dari Let’s Encrypt.

Praktik dari nol: hal yang wajib disiapkan
Nama app.example.com adalah placeholder dokumentasi, bukan domain yang bisa diterbitkan sertifikatnya. Pastikan A/AAAA record menunjuk ke host, backend pada port 3000/3001 benar-benar running, port challenge tersedia, dan sudo nginx -t berhasil sebelum mengubah konfigurasi. Setelah sertifikat valid, uji curl -I https://NAMA-DOMAIN-ASLI, routing tiap backend, dan sudo certbot renew --dry-run bila cocok dengan metode sertifikat.
Persiapan & pembuktian hasil sebelum mengikuti tutorial Nginx + Certbot
Kebutuhan dan dependensi
Nginx harus dipasang dan dapat membaca file konfigurasi sebelum menjalankan perintah reload. Sertifikat Let’s Encrypt membutuhkan domain yang mengarah ke server, metode challenge yang dapat diverifikasi, serta port yang sesuai. `certbot` dan plugin webserver tidak selalu terinstal bersama paket Nginx.
Perintah pemeriksaan awal
sudo apt update
sudo apt install nginx certbot python3-certbot-nginx
nginx -v
certbot --version
sudo nginx -t
curl -I https://example.comCara membuktikan konfigurasi berhasil
Uji `sudo nginx -t`, status service, respons HTTP/HTTPS, sertifikat dan chain, lalu lakukan dry-run pembaruan sertifikat pada setup yang memang mendukungnya. Periksa routing ke backend, bukan hanya munculnya halaman Nginx bawaan.
Risiko yang perlu dihindari
Jangan menjalankan `certbot –nginx` sebelum DNS domain serta konfigurasi HTTPS dan port 80/443 diaudit. Jangan memakai contoh domain untuk menerbitkan sertifikat.
Status verifikasi: instruksi di bagian ini adalah pemeriksaan yang harus dijalankan pada host sesuai kebutuhan. Tidak ada klaim bahwa konfigurasi seluruhnya telah diuji di server produksi Edelweis.
1. Konfigurasi Upstream Pool & Server Block Nginx
Buat file konfigurasi virtual host baru di /etc/nginx/sites-available/app.edelweis.my.id:
upstream backend_cluster {
least_conn; # Algoritma koneksi terendah
server 127.0.0.1:3000 max_fails=3 fail_timeout=10s;
server 127.0.0.1:3001 max_fails=3 fail_timeout=10s;
}
server {
listen 80;
server_name app.example.com; # GANTI dengan FQDN milik Anda yang sudah aktif DNS
location / {
proxy_pass http://backend_cluster;
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;
# Dukungan WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Aktifkan konfigurasi dengan membuat symlink: sudo ln -s /etc/nginx/sites-available/app.edelweis.my.id /etc/nginx/sites-enabled/.
2. Pasang Enkripsi SSL Otomatis dengan Certbot
Jalankan Certbot untuk memperoleh sertifikat SSL Let’s Encrypt dan mengonfigurasi pengalihan otomatis HTTP ke HTTPS:
# Sesuaikan app.example.com dengan domain publik milik Anda.
# Jangan jalankan Certbot untuk domain dokumentasi.
# sudo certbot --nginx -d NAMA-DOMAIN-ASLI
Certbot akan secara otomatis menambahkan timer systemd (certbot.timer) untuk memperbarui sertifikat sebelum kedaluwarsa secara berkala.
Langkah Verifikasi Implementasi
Kesimpulan & Rekomendasi Praktik Terbaik
Reverse proxy Nginx membantu memusatkan pengaturan HTTPS, routing, dan distribusi permintaan ke backend. Kapasitas trafik yang dapat dilayani tetap bergantung pada konfigurasi, sumber daya server, performa aplikasi, dan hasil pengujian beban.
Rujukan & bacaan lanjutan: untuk memeriksa sintaks dan perilaku konfigurasi, lihat dokumentasi resmi Nginx. Lanjutkan dengan panduan LEMP Stack Edelweis atau peta belajar. Pastikan langkah yang dipilih diuji pada lingkungan sendiri sebelum diterapkan ke produksi.
Catatan editorial: Diagram bersifat konseptual kecuali diberi label sebagai hasil uji. Verifikasi konfigurasi di perangkat lu sendiri sebelum dipakai pada sistem produksi.



Tinggalkan Balasan