Juni 17, 2026
ChatGPT Image 16 Jun 2026, 18.35.55
Membuat Reverse Proxy Nginx untuk Grafana, Portainer, dan Uptime Kuma: Satu IP Publik, Banyak Aplikasi

Saat mengelola server VPS atau server lokal yang diakses dari internet, sering kali kita menjalankan beberapa aplikasi secara bersamaan. Misalnya Grafana untuk monitoring, Portainer untuk manajemen Docker, dan Uptime Kuma untuk pemantauan layanan.

Masalah muncul ketika setiap aplikasi berjalan pada port yang berbeda. Pengguna harus mengakses URL seperti:

  • server.com:3000 (Grafana)
  • server.com:9000 (Portainer)
  • server.com:3001 (Uptime Kuma)

Selain kurang profesional, cara ini juga menyulitkan pengguna dan kurang optimal dari sisi keamanan.

Solusi yang paling umum digunakan adalah Reverse Proxy Nginx. Dengan reverse proxy, seluruh aplikasi dapat diakses melalui satu IP publik menggunakan subdomain yang berbeda.

Contohnya:

  • grafana.domain.com
  • portainer.domain.com
  • status.domain.com

Konfigurasi ini banyak digunakan oleh administrator jaringan, DevOps Engineer, dan pengelola infrastruktur modern.


Apa Itu Reverse Proxy?

Reverse Proxy adalah server perantara yang menerima permintaan dari pengguna kemudian meneruskannya ke aplikasi yang berjalan di belakangnya.

Secara sederhana:

User โ†’ Nginx โ†’ Aplikasi Internal

Keuntungan penggunaan reverse proxy:

  • Menggunakan satu IP publik untuk banyak aplikasi
  • URL lebih rapi dan profesional
  • Mudah menerapkan SSL/TLS
  • Menambah lapisan keamanan
  • Memudahkan pengelolaan layanan

Topologi Implementasi

Misalkan server memiliki konfigurasi berikut:

AplikasiPort InternalSubdomain
Grafana3000grafana.domain.com
Portainer9000portainer.domain.com
Uptime Kuma3001status.domain.com

Nginx akan menerima semua request dari internet dan meneruskannya ke aplikasi yang sesuai berdasarkan nama subdomain.


Persiapan Sebelum Konfigurasi

Pastikan:

Domain Sudah Mengarah ke Server

Buat DNS Record:

  • grafana.domain.com โ†’ IP Server
  • portainer.domain.com โ†’ IP Server
  • status.domain.com โ†’ IP Server

Nginx Sudah Terinstal

Ubuntu/Debian:

sudo apt update
sudo apt install nginx -y

Pastikan service berjalan:

sudo systemctl status nginx

Konfigurasi Reverse Proxy Grafana

Buat file konfigurasi:

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

Isi konfigurasi:

server {
    listen 80;
    server_name grafana.domain.com;

    location / {
        proxy_pass http://127.0.0.1:3000;

        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;
    }
}

Aktifkan konfigurasi:

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

Konfigurasi Reverse Proxy Portainer

Buat file:

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

Isi:

server {
    listen 80;
    server_name portainer.domain.com;

    location / {
        proxy_pass http://127.0.0.1:9000;

        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;
    }
}

Aktifkan:

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

Konfigurasi Reverse Proxy Uptime Kuma

Buat file:

sudo nano /etc/nginx/sites-available/uptime-kuma

Isi:

server {
    listen 80;
    server_name status.domain.com;

    location / {
        proxy_pass http://127.0.0.1:3001;

        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;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Baris Upgrade dan Connection diperlukan agar fitur WebSocket Uptime Kuma berjalan dengan baik.


Menguji Konfigurasi Nginx

Periksa syntax konfigurasi:

sudo nginx -t

Jika berhasil:

sudo systemctl reload nginx

Output yang diharapkan:

syntax is ok
test is successful

Menambahkan SSL Gratis dengan Let’s Encrypt

Instal Certbot:

sudo apt install certbot python3-certbot-nginx -y

Jalankan:

sudo certbot --nginx

Pilih domain:

  • grafana.domain.com
  • portainer.domain.com
  • status.domain.com

Certbot akan:

  • Membuat sertifikat SSL
  • Mengaktifkan HTTPS
  • Mengatur redirect HTTP ke HTTPS

Hasil akhirnya:

https://grafana.domain.com
https://portainer.domain.com
https://status.domain.com

Tips Keamanan Tambahan

Batasi Akses Port Internal

Gunakan firewall agar port aplikasi tidak langsung dapat diakses dari internet.

Contoh UFW:

sudo ufw allow 80
sudo ufw allow 443
sudo ufw deny 3000
sudo ufw deny 3001
sudo ufw deny 9000

Gunakan Autentikasi Tambahan

Untuk layanan penting seperti Portainer dan Grafana:

  • Gunakan password yang kuat
  • Aktifkan MFA jika tersedia
  • Batasi akses berdasarkan IP jika diperlukan

Monitoring Log Nginx

Periksa log secara berkala:

sudo tail -f /var/log/nginx/access.log

dan

sudo tail -f /var/log/nginx/error.log

Manfaat Reverse Proxy untuk Infrastruktur Modern

Setelah menerapkan reverse proxy, pengelolaan server menjadi jauh lebih sederhana.

Manfaat yang langsung terasa:

  • Akses aplikasi lebih profesional
  • Mudah menambahkan SSL
  • Mempermudah ekspansi layanan baru
  • Meningkatkan keamanan server
  • Memudahkan troubleshooting dan monitoring

Ketika nantinya Anda menambahkan aplikasi lain seperti:

  • Nextcloud
  • Gitea
  • Jenkins
  • Prometheus
  • Zabbix

Anda cukup menambahkan subdomain dan blok konfigurasi Nginx baru.

Kesimpulan

Reverse Proxy Nginx merupakan solusi yang sederhana namun sangat efektif untuk mengelola banyak aplikasi dalam satu server. Dengan memanfaatkan subdomain yang berbeda, Grafana, Portainer, dan Uptime Kuma dapat berjalan pada satu IP publik tanpa harus mengekspos banyak port ke internet.

Selain membuat akses lebih profesional, pendekatan ini juga mempermudah penerapan SSL, meningkatkan keamanan, dan memudahkan pengelolaan infrastruktur dalam jangka panjang.


“Server yang baik bukan hanya berjalan, tetapi juga mudah dikelola dan aman untuk berkembang.”


Frequently Asked Questions (FAQ)

1. Apa fungsi utama reverse proxy Nginx?

Reverse proxy berfungsi meneruskan request dari pengguna ke aplikasi backend yang sesuai berdasarkan domain atau subdomain.

2. Apakah satu IP publik bisa digunakan untuk banyak aplikasi?

Ya. Dengan reverse proxy, banyak aplikasi dapat diakses melalui subdomain yang berbeda pada satu IP publik.

3. Apakah Grafana wajib menggunakan reverse proxy?

Tidak wajib, tetapi sangat disarankan untuk keamanan, kemudahan akses, dan implementasi SSL.

4. Mengapa Uptime Kuma membutuhkan konfigurasi WebSocket?

Karena beberapa fitur real-time Uptime Kuma menggunakan koneksi WebSocket untuk pembaruan status secara langsung.

5. Apakah reverse proxy dapat digunakan bersama Docker?

Ya. Bahkan kombinasi Docker dan Nginx Reverse Proxy merupakan implementasi yang sangat umum digunakan.

6. Apakah SSL Let’s Encrypt gratis?

Ya. Let’s Encrypt menyediakan sertifikat SSL gratis yang dapat diperbarui secara otomatis.


Apakah Anda sudah menerapkan reverse proxy pada server Anda?

Bagikan pengalaman, kendala, atau konfigurasi yang digunakan pada kolom komentar. Jika artikel ini bermanfaat, jangan lupa membagikannya ke rekan SysAdmin dan DevOps lainnya, serta subscribe untuk mendapatkan panduan Linux, Docker, Monitoring, dan Server Administration terbaru. Anda juga dapat membaca artikel terkait tentang Docker, Grafana, dan keamanan server untuk memperdalam pengelolaan infrastruktur modern.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *