Kasusnya saya tidak ingin ketika frontend konsum API yang dibuat itu dengan IP misalkan http://192.168.1.1:4000 karena saya menggunakan Go Fiber dengan port 4000 untuk itu saya ingin ubah ke dalam domain yang di proxy ke dalam IP tersebut sehingga nantinya frontend itu mengakses melalui domain dan sudah tidak lagi dengan IP.
Untuk mengubah akses API dari IP 0.0.0.0:4000
menjadi domain domain.com
, ikuti langkah-langkah berikut:
1. Pastikan Anda Memiliki Akses ke DNS Domain
Anda harus memiliki akses ke pengaturan DNS domain domain.com
. Jika belum, hubungi admin domain tersebut atau yang bertugas konfigurasi domain jika pribadi tinggal sesuaikan didomain dnsnya.
2. Buat DNS A Record
Masuk ke pengelola DNS domain (misalnya Cloudflare, cPanel, atau layanan DNS lainnya) dan buat A Record dengan konfigurasi berikut:
- Type: A
- Name:
domain
- Value:
0.0.0.0
- TTL: Auto / 300 (tergantung layanan DNS)
🛑 Jika ingin menggunakan SSL (HTTPS), pastikan layanan DNS tidak mengaktifkan "Proxy" di Cloudflare (gunakan DNS Only).
3. Konfigurasi Reverse Proxy dengan Nginx (Opsional tapi Disarankan)
Agar API berjalan di port 80/443 dengan domain, sebaiknya gunakan Nginx sebagai reverse proxy. Install Nginx di server:
sudo apt update && sudo apt install nginx -y
Lalu buat konfigurasi di /etc/nginx/sites-available/domain
:
server {
listen 80;
server_name domain.com;
location / {
proxy_pass http://0.0.0.0:4000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Aktifkan konfigurasi:
sudo ln -s /etc/nginx/sites-available/domain /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
4. Tambahkan SSL dengan Let's Encrypt (HTTPS)
Untuk mengamankan API dengan HTTPS, gunakan Certbot:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d domain.com
Otomatis perbarui sertifikat:
sudo certbot renew --dry-run
5. Uji Coba
Setelah semua langkah di atas, coba akses API melalui:
http://domain.com
https://domain.com (jika SSL aktif)
Jika ada masalah, pastikan:
✅ DNS sudah diarahkan dengan benar (gunakan nslookup domain.com
)
✅ Firewall tidak memblokir port 80/443
✅ API Go masih berjalan dengan benar
🚀 Selesai! Sekarang API bisa diakses melalui domain domain.com 🎉