Apps Artificial Intelligence CSS DevOps Go JavaScript Laravel Linux MongoDB MySQL PHP Python Rust Vue

Menggunakan Nginx sebagai Reverse Proxy untuk Aplikasi Go

1 min read .
Menggunakan Nginx sebagai Reverse Proxy untuk Aplikasi Go

Kalau kamu bikin aplikasi web dengan Go, biasanya aplikasinya jalan langsung di port tertentu, misalnya :8080. Masalahnya, kalau saya ingin aplikasi ini bisa diakses lewat domain (misalnya yourdomain.com) dengan port standar :80 atau bahkan :443 (HTTPS), saya butuh “penengah”. Nah, di sinilah Nginx berperan sebagai reverse proxy.

Dengan Nginx di depan aplikasi Go, kita bisa dapat banyak keuntungan:

  • Request dari user lewat dulu ke Nginx sebelum diteruskan ke Go.
  • Bisa tambah SSL (HTTPS) dengan gampang.
  • Bisa bagi-bagi beban (load balancing) kalau aplikasinya jalan di beberapa instance.
  • Nginx juga lebih efisien untuk melayani file statis (gambar, CSS, JS, dll).

Di artikel ini, saya bahas cara setup-nya langkah demi langkah.

1. Instal Nginx

Kalau belum ada Nginx di server, install dulu. Di Ubuntu/Debian:

sudo apt update
sudo apt install nginx

2. Buat Konfigurasi Reverse Proxy

kita perlu bikin file konfigurasi untuk aplikasi Go. Misalnya:

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

Isi dengan konfigurasi:

server {
    listen 80;
    server_name yourdomain.com;  # ganti dengan domain atau IP server kamu

    location / {
        proxy_pass http://localhost:8080;
        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;
    }
}

Konfigurasi ini artinya: semua request ke yourdomain.com akan diteruskan ke aplikasi Go yang jalan di localhost:8080.

3. Aktifkan Konfigurasi

Supaya konfigurasi terbaca Nginx, buat symlink ke folder sites-enabled:

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/

4. Uji Konfigurasi

Sebelum reload Nginx, tes dulu apakah config valid:

sudo nginx -t

Kalau ada pesan “syntax is ok” dan “test is successful”, berarti aman.

5. Reload Nginx

Jalankan:

sudo systemctl reload nginx

Sekarang Nginx sudah siap jadi pintu depan aplikasi Go kamu.

6. Akses Aplikasi

Coba buka http://yourdomain.com di browser. Kalau konfigurasi benar, request akan lewat ke Nginx dulu, lalu diteruskan ke aplikasi Go di port :8080.

(Opsional) Tambah HTTPS dengan Let’s Encrypt

Supaya lebih aman, kamu bisa aktifkan SSL gratis dari Let’s Encrypt. Dengan Certbot, setup HTTPS biasanya cukup satu perintah:

sudo certbot --nginx -d yourdomain.com

Ikuti instruksi di layar, dan selesai—aplikasi Go kamu sekarang bisa diakses lewat HTTPS.

Lihat Juga

chevron-up