Lewati ke konten

3. Konfigurasi, Error & Log

Terminal window
sudo nginx -t && sudo systemctl reload nginx

nginx -t memeriksa seluruh konfigurasi tanpa mengubah apa pun. Tanda && memastikan reload hanya dijalankan kalau tes berhasil. Kalau konfigurasi rusak dan kamu langsung restart, nginx gagal menyala dan semua situs di server ikut mati.

nginx: [emerg] directive "root" is not terminated by ";" in /etc/nginx/sites-enabled/blog:5

Pesan nginx selalu menyebut apa masalahnya dan di mana (file:baris). Buka file dengan nomor baris:

Terminal window
cat -n /etc/nginx/sites-available/blog

Error yang sering muncul:

Pesan Penyebab
is not terminated by ";" lupa titik koma
unexpected "}" / unexpected end of file kurung kurawal tidak seimbang
unknown directive "rot" salah ketik nama directive
a duplicate default server dua situs sama-sama memakai default_server
invalid port in upstream port di proxy_pass salah

Di server sungguhan kamu bisa memakai nano. Di terminal latihan, kita memakai sed untuk mengganti teks:

Terminal window
sudo sed -i 's|root /var/www/blog$|root /var/www/blog;|' /etc/nginx/sites-available/blog

s|LAMA|BARU| mengganti teks; $ berarti “akhir baris”; -i menyimpan perubahan langsung ke file.

Terminal window
sudo tail -n 20 /var/log/nginx/access.log # siapa meminta apa, hasilnya kode berapa
sudo tail -n 20 /var/log/nginx/error.log # kenapa gagal
sudo tail -f /var/log/nginx/error.log # pantau langsung (Ctrl+C untuk berhenti)

Satu baris access log:

127.0.0.1 - - [19/Oct/2026:09:45:00 +0700] "GET /tidak-ada HTTP/1.1" 404 162 "-" "curl/8.5.0"

Kode status yang perlu kamu kenal: 200 OK, 301/302 redirect, 403 dilarang (biasanya permission), 404 tidak ditemukan, 502 backend tidak menjawab.

Lab: Memperbaiki konfigurasi yang rusak
Misi 0/8
  1. Rekan kerjamu baru mengubah konfigurasi blog. Tes dulu sebelum reload!
    Petunjuksudo nginx -t
  2. Buka file yang disebut di pesan error, lengkap dengan nomor baris.
    Petunjukcat -n /etc/nginx/sites-available/blog
  3. Perbaiki baris root yang lupa titik koma.
    Petunjuksudo sed -i 's|root /var/www/blog$|root /var/www/blog;|' /etc/nginx/sites-available/blog
  4. Tes lagi — sekarang harus berhasil.
    Petunjuksudo nginx -t
  5. Reload nginx.
    Petunjuksudo systemctl reload nginx
  6. Minta halaman yang tidak ada di blog.
    Petunjukcurl -I http://blog.local/tidak-ada
  7. Cari penyebabnya di error log.
    Petunjuksudo tail -n 3 /var/log/nginx/error.log
  8. Lihat catatan permintaan di access log.
    Petunjuksudo tail -n 3 /var/log/nginx/access.log