Lewati ke konten

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/.

┌──▶ container web-utama :18080 (location /)
pengunjung ─▶ nginx ─┤
└──✗ container learn :18082 (belum ada aturan)
  1. Buktikan masalahnya: halaman utama terbuka, tapi /learn/ 404.

  2. Pastikan container learn sendiri sehat dengan mengaksesnya langsung di port 18082. Kalau container-nya sehat, masalahnya ada di nginx.

  3. Tambahkan aturan sebelum location /:

    location /learn/ {
    proxy_pass http://127.0.0.1:18082;
    }

    Nginx memilih location dengan awalan terpanjang yang cocok, jadi /learn/... masuk ke aturan ini dan path lainnya tetap ke location /.

  4. Tes, reload, buktikan.

  5. Tangani /learn tanpa garis miring. Path ini tidak cocok dengan location /learn/, jadi tambahkan redirect:

    location = /learn {
    return 301 /learn/;
    }

    Tanda = berarti cocok persis.

Lab: Proyek: menambah /learn seperti GSTNV-LAB
Misi 0/8
  1. Buka halaman utama gstnv-lab.xyz.
    Petunjukcurl http://gstnv-lab.xyz
  2. Coba buka /learn/ — hasilnya 404, persis masalah yang dialami GSTNV-LAB.
    Petunjukcurl -I http://gstnv-lab.xyz/learn/
  3. Pastikan container learn sendiri sehat di port 18082.
    Petunjukcurl localhost:18082/learn/
  4. Tambahkan location /learn/ yang meneruskan ke port 18082.
    Petunjuksudo sed -i 's|# TEMPAT_LOCATION_LEARN|location /learn/ { proxy_pass http://127.0.0.1:18082; }|' /etc/nginx/sites-available/gstnv-lab.xyz
  5. Tes lalu reload nginx.
    Petunjuksudo nginx -t && sudo systemctl reload nginx
  6. Buka /learn/ lagi — sekarang berhasil.
    Petunjukcurl http://gstnv-lab.xyz/learn/
  7. Tambahkan redirect agar /learn (tanpa garis miring) diarahkan ke /learn/.
    Petunjuksudo sed -i 's|# TEMPAT_REDIRECT_LEARN|location = /learn { return 301 /learn/; }|' /etc/nginx/sites-available/gstnv-lab.xyz
  8. Terapkan dan buktikan redirect-nya.
    Petunjuksudo nginx -t && sudo systemctl reload nginx lalu curl -I http://gstnv-lab.xyz/learn

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.