Pendahuluan
Ketika memiliki beberapa layanan yang berjalan dalam satu server, seperti WordPress, BookStack, OpenWebUI, atau aplikasi berbasis Docker lainnya, mengakses setiap layanan menggunakan alamat IP dan port yang berbeda tentu kurang praktis.
Nginx Proxy Manager (NPM) hadir sebagai solusi reverse proxy yang mudah digunakan melalui antarmuka web. Dengan NPM, kita dapat menghubungkan domain atau subdomain ke aplikasi yang berjalan di server tanpa harus melakukan konfigurasi Nginx secara manual.
Pada artikel ini saya akan membahas cara menginstal Nginx Proxy Manager menggunakan Docker di Ubuntu Server yang berjalan pada lingkungan Proxmox VE.
Apa Itu Nginx Proxy Manager?
Nginx Proxy Manager adalah aplikasi berbasis Docker yang menyediakan antarmuka web untuk mengelola:
- Reverse Proxy
- SSL Let’s Encrypt
- Redirect Domain
- Access List
- Forward Host
- Wildcard SSL
Dengan NPM, proses konfigurasi reverse proxy menjadi jauh lebih sederhana dibandingkan mengedit file konfigurasi Nginx secara manual.
Kebutuhan Sistem
Sebelum memulai, pastikan:
- Ubuntu Server sudah berjalan
- Docker sudah terinstall
- Docker Compose sudah tersedia
- Domain sudah mengarah ke IP publik server
Jika Docker belum terpasang, silakan baca artikel sebelumnya mengenai instalasi Docker pada Ubuntu Server.
Membuat Folder Nginx Proxy Manager
Buat direktori untuk menyimpan konfigurasi dan database:
mkdir -p ~/npm
cd ~/npm
Membuat Docker Compose
Buat file:
nano docker-compose.yml
Masukkan konfigurasi berikut:
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80'
- '81:81'
- '443:443'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
Simpan file kemudian keluar dari editor.
Menjalankan Container
Jalankan perintah berikut:
docker compose up -d
Tunggu hingga proses download image dan pembuatan container selesai.
Memastikan Container Berjalan
Cek status container:
docker ps
Contoh hasil:
CONTAINER ID IMAGE STATUS
xxxxxxxxxxxx jc21/nginx-proxy-manager Up
Jika status menunjukkan Up, berarti Nginx Proxy Manager telah berhasil berjalan.
Mengakses Dashboard Nginx Proxy Manager
Buka browser dan akses:
http://IP-SERVER:81
Contoh:
http://192.168.1.10:81
Login Pertama Kali
Gunakan akun default berikut:
admin@example.com
Password
changeme
Setelah berhasil login, sistem akan meminta perubahan email dan password administrator.
Demi keamanan, segera gunakan password yang kuat.
Menambahkan Proxy Host
Sebagai contoh, saya akan menghubungkan domain WordPress yang berjalan pada port 8080.
Masuk ke:
Hosts → Proxy Hosts
Klik:
Add Proxy Host
Isi konfigurasi:
Domain Names
devweb.biz.id
Scheme
http
Forward Hostname/IP
172.10.20.14
Forward Port
8080
Centang:
Block Common Exploits
Simpan konfigurasi.
Mengaktifkan SSL Let’s Encrypt
Setelah Proxy Host berhasil dibuat:
Klik Edit → Tab SSL
Pilih:
Request a New SSL Certificate
Centang:
- Force SSL
- HTTP/2 Support
- Agree to Let’s Encrypt Terms
Klik Save.
NPM akan otomatis membuat dan memasang sertifikat SSL.
Jika berhasil, website dapat diakses menggunakan:
https://devweb.biz.id
Verifikasi SSL
Buka website menggunakan browser.
Pastikan:
- Ikon gembok muncul
- Tidak ada peringatan sertifikat
- URL menggunakan HTTPS
Contoh:
https://devweb.biz.id
Kelebihan Menggunakan Nginx Proxy Manager
Beberapa keuntungan yang saya rasakan setelah menggunakan NPM:
- Mudah dikelola melalui web browser
- Tidak perlu mengedit konfigurasi Nginx manual
- SSL gratis dari Let’s Encrypt
- Cocok untuk homelab maupun server produksi kecil
- Mendukung banyak domain dan subdomain
Karena kemudahan tersebut, NPM menjadi salah satu aplikasi yang hampir selalu saya install ketika membangun server berbasis Docker.
Kesimpulan
Nginx Proxy Manager merupakan solusi reverse proxy yang sangat membantu dalam mengelola berbagai layanan pada server Linux. Dengan antarmuka web yang sederhana, proses konfigurasi domain dan SSL dapat dilakukan hanya dalam beberapa klik.
Pada tutorial ini kita telah berhasil:
- Menginstal Nginx Proxy Manager menggunakan Docker
- Mengakses dashboard administrasi
- Membuat Proxy Host
- Mengaktifkan SSL Let’s Encrypt
Pada artikel berikutnya saya akan membahas cara menghubungkan domain ke Nginx Proxy Manager sehingga website yang berjalan di server dapat diakses menggunakan nama domain publik.
