Cara Setup Reverse Proxy Nginx di Docker

Hai, Sob! Supaya pengelolaan traffic jadi gampang dan fleksibel, banyak orang menggunakan reverse proxy untuk mengarahkan permintaan ke berbagai container atau service di server, yang paling populer serta ringan biasanya Nginx.

Artikel ini akan menjelaskan langkah-langkah melakukan setup Nginx sebagai reverse proxy di Docker, sehingga kamu bisa langsung mengarahkan domain atau subdomain ke container yang tepat tanpa perlu utak-atik di luar Docker. Yuk mulai!

Apa itu Reverse Proxy?

Reverse proxy bekerja sebagai perantara di depan server, yang bertugas menerima request dari user sebelum meneruskannya ke service yang tepat. Jadi, ketika seseorang mengakses situsmu, reverse proxy-lah yang menentukan apakah request itu harus diarahkan ke container Laravel, WordPress, atau aplikasi lain yang berjalan di background.

Dengan reverse proxy, pengelolaan server akan jadi lebih terstruktur. Kamu bisa mengatur domain atau subdomain keservice tertentu, mengaktifkan SSL tanpa ribet, hingga membagi beban ke beberapa container jika diperlukan. Nginx menjadi pilihan banyak orang karena performanya ringan, fleksibel, dan mudah diatur.

Berikut ini langkah-langkah setup reverse proxy Nginx di Docker.

Prasyarat

  1. Sudah menginstal docker dan docker compose pada server
  2. Memiliki domain atau subdomain aktif
  3. Container service yang mau kamu proxy
  4. Memahami basic network di Docker, minimal konsep service name, network, dan volume

Step 1: Membuat Docker Compose untuk Reverse Proxy

Agar lebih mudah melakukan setup dan running Nginx sebagai reverse proxy, kali ini akan menggunakan Docker compose karena semua konfigurasi bisa disimpan dalam satu file docker-compose.yml.

				
					version: '3.8'
services:
  nginx:
    image: nginx:latest
    container_name: nginx-proxy
    ports:
      - "80:80"
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/logs:/var/log/nginx
    networks:
      - proxy-net
 
networks:
  proxy-net:
    driver: bridge

				
			

Step 2: Konfigurasi Nginx untuk Reverse Proxy

Selanjutnya, lakukan setup konfigurasi Nginx untuk reverse proxy. Konfigurasi ini biasanya ada di direktori nginx/conf.d yang pada langkah sebelumnya sudah di mount pada file docke-compose.yml. Contoh file confignya: app.conf.

				
					server {
    listen 80;
    server_name contoh.domain.com;
    location / {
        proxy_pass http://target-app:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

				
			

Keterangan:

  • server_name: Ganti dengan nama domain atau subdomain kamu
  • proxy_pass: Nama container target dan port tujuan
  • proxy_set_header: Untuk meneruskan informasi header ke backend agar lebih akurat

Pastikan file ini tersimpan di nginx/conf.d/ dan terhubung ke container. Jika sudah, restart service Nginx dengan command:

				
					docker compose restart nginx
				
			

Step 3: Menambahkan Aplikasi ke Docker Network

Agar Nginx dapat reverse proxy ke container lain, aplikasi target harus berada di jaringan yang sama. Karena di Docker, container bisa terhubung lewat nama service kalau berada dalam satu jaringan.

Sebagai contoh, kamu punya container Laravel yang mau di proxy dengan Nginx, di file docker-compose.yml aplikasi Laravel tinggal tambahkan:

				
					services:
  laravel-app:
    image: laravel-custom:latest
    container_name: laravel-app
    networks:
      - proxy-net
networks:
  proxy-net:
    external: true

				
			

Dengan pengaturan di atas, Nginx bisa mengakses http://laravel-app:8000 langsung lewat nama servicenya. Jadi, nggak perlu pakai IP address lagi, Sob. Jangan lupa juga pastikan port aplikasi target-nya terbuka di dalam container, sesuai dengan yang kamu arahkan di proxy_pass.

Tips Reverse Proxy dengan Docker

Supaya konfigurasi reverse proxy makin lebih kuat, stabil, dan optimal, cobalah menerapkan beberapa tips berikut.

  • Gunakan SSL untuk meningkatkan keamanan. Kamu bisa pakai Certbot untuk mendapatkan sertifikat gratis dari Let’s Encrypt. Nginx juga mudah dikonfigurasi agar berjalan di port 443 dan menangani HTTPS secara optimal.
  • Memanfaatkan caching di Nginx apabila websitmu banyak memuat file statis seperti gambar, CSS, atau JavaScript. Contoh:
				
					location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    expires 7d;
    add_header Cache-Control "public, no-transform";
}

				
			
  • Mount folder konfigurasi Nginx ke dalam container menggunakan volume agar kamu bisa mengubah file *.conf kapan pun tanpa rebuild. Cukup lakukan restart pada service nginx di Docker Compose untuk menerapkan perubahan. Cara ini mempercepat proses pengelolaan konfigurasi dan memudahkan debugging.

Reverse proxy cocok buat kamu yang punya banyak project atau service dalam satu VPS. Mungkin setupnya terasa ribet diawal tetapi begitu sudah mengerti alurnya, semuanya jadi lebih mudah dan rapi. Dengan reverse proxy, kamu bisa menjalankan banyak aplikasi dalam satu server tanpa pusing mengatur port, sekaligus menambahkan SSL dan caching dengan lebih praktis.

Apabila ada yang masih bingung, jangan ragu hubungi Tim Support Jagoan Hosting melalui Live Chat atau Open Ticket, Sob. Good luck, ya!

Related Posts
Tips Mengatasi Error Undefined Index / Variable

Pengantar Halo sobat Jagoan! di tutorial kali ini kita bakalan membahas permasalahan Error Undefined Index/Variable. Pasti sekarang kamu lagi main-main Read more

Tutorial Backup Data Website Melalui Softacolous pada cPanel

Hai Sob! Apakah Sobat sedang mencari cara gimana caranya melakukan backup data website melalui softacolous pada cPanel? Tenang aja Sob, Read more

Tutorial Mudah Setting Mail pada Mac Operating System

Hai Sob! Apakah Sobat butuh panduan untuk melakukan setting Mail pada Mac OS Sobat? Tenang aja Sob! Jagoan Hosting selalu Read more

Tutorial Mempercepat Load Website dengan Caching Browser

Hai Sob! Apa Sobat lagi bingung gimana caranya mempercepat load website dengan caching browser? Santai aja Sob, dibawah ini banyak Read more