6. Proyek Akhir
Proyek ini diambil dari kejadian nyata. Saat situs belajar GSTNV-LAB pertama kali di-deploy, container-nya sudah sehat tetapi https://gstnv-lab.xyz/learn/ menjawab 404. Penyebabnya: nginx di depan masih meneruskan semua path ke halaman utama, dan halaman utama tidak punya /learn/.
Kondisi awal
Section titled “Kondisi awal” ┌──▶ container web-utama :18080 (location /)pengunjung ─▶ nginx ─┤ └──✗ container learn :18082 (belum ada aturan)Skenario
Section titled “Skenario”-
Buktikan masalahnya: halaman utama terbuka, tapi
/learn/404. -
Pastikan container
learnsendiri sehat dengan mengaksesnya langsung di port 18082. Kalau container-nya sehat, masalahnya ada di nginx. -
Tambahkan aturan sebelum
location /:location /learn/ {proxy_pass http://127.0.0.1:18082;}Nginx memilih
locationdengan awalan terpanjang yang cocok, jadi/learn/...masuk ke aturan ini dan path lainnya tetap kelocation /. -
Tes, reload, buktikan.
-
Tangani
/learntanpa garis miring. Path ini tidak cocok denganlocation /learn/, jadi tambahkan redirect:location = /learn {return 301 /learn/;}Tanda
=berarti cocok persis.
- Buka halaman utama
gstnv-lab.xyz.Petunjuk
curl http://gstnv-lab.xyz - Coba buka
/learn/— hasilnya 404, persis masalah yang dialami GSTNV-LAB.Petunjuk
curl -I http://gstnv-lab.xyz/learn/ - Pastikan container
learnsendiri sehat di port 18082.Petunjuk
curl localhost:18082/learn/ - Tambahkan
location /learn/yang meneruskan ke port 18082.Petunjuk
sudo sed -i 's|# TEMPAT_LOCATION_LEARN|location /learn/ { proxy_pass http://127.0.0.1:18082; }|' /etc/nginx/sites-available/gstnv-lab.xyz - Tes lalu reload nginx.
Petunjuk
sudo nginx -t && sudo systemctl reload nginx - Buka
/learn/lagi — sekarang berhasil.Petunjuk
curl http://gstnv-lab.xyz/learn/ - Tambahkan redirect agar
/learn(tanpa garis miring) diarahkan ke/learn/.Petunjuk
sudo sed -i 's|# TEMPAT_REDIRECT_LEARN|location = /learn { return 301 /learn/; }|' /etc/nginx/sites-available/gstnv-lab.xyz - Terapkan dan buktikan redirect-nya.
Petunjuk
sudo nginx -t && sudo systemctl reload nginx lalu curl -I http://gstnv-lab.xyz/learn
Selamat!
Section titled “Selamat!”Kamu sudah menyelesaikan seluruh jalur belajar GSTNV-LAB: Linux, Docker, jaringan & WireGuard, sampai nginx dan HTTPS. Itu bekal yang sama yang dipakai untuk membangun infrastruktur situs ini. Saatnya mencoba di server sungguhan — mulai dari satu VM di Proxmox atau VPS termurah, dan bangun lab-mu sendiri.

