Nginx Reverse Proxy untuk Multi-Container
Halo teman-teman, selamat tahun baru semoga di tahun ini segala doa dan harapan baik dari teman-teman dipermudah dan dikabulkan oleh tuhan yang maha kuasa Aamiin !!!
Pada tulisan ini, saya ingin berbagi cara me-reverse request yang masuk dari user ke aplikasi kita yang berjalan pada container.
Sebelum nya ada beberapa syarat yang teman-teman harus siapkan terlebih dahulu.
Persyaratan
- Aplikasi yang berjalan pada container, minimal dua container atau bisa menggunakan
docker-compose
bisa copy disini - Domain yang digunakan untuk masing-masing domain
- VPS ( Virtual Private Server )
Menjalankan semua Aplikasi
- Jalankan semua Container
Jalankan semua container yang ada pada server anda, jangan lupa untuk memastikan bisa diakses ya containernya.
- Buat Domain/Sub Domain
Buat domain dan subdomain dan arahkan ke IP public VPS teman-teman.
- Install nginx
Install nginx dan pastikan tidak dijalankan melalui container.
- Install Certbot
Install Certbot khusus nginx, ini berfungsi untuk membuat sertifikat SSL.
Generate SSL
- Buat file konfigurasi untuk domain/subdomain teman-teman
sudo nano /etc/nginx/sites-available/example.com
- Sesuaikan konfigurasi dibawah ini dengan domain/subdomain teman-teman
- Symlink file konfigurasi kalian.
ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
- Periksa konfigurasi Nginx
sudo nginx -t
- Restart Nginx
sudo systemctl restart nginx
- Generate SSL
sudo certbot --nginx -d example.com
- Ubah file konfigurasi yang kalian buat diawal menjadi seperti ini
- Ubah example.com menjadi domain/subdomain kalian
- Pada baris ke-22 ubah dengan ip docker dan port yang kalian expose pada docker-compose.yml
- Untuk melihat IP di container teman-teman bisa menggunakan perintah
docker inspect (id container)
- Restart nginx
- Untuk domain/subdomain yang lain, Ulangi langkah pada section Generate SSL dari awal
Sekian teman-teman, maaf kalau ada kesalahan ya :)