Mengatasi Error 404 pada Virtual Host Nginx

Error 404 Not Found pada konfigurasi virtual host Nginx umumnya terjadi karena ketidakcocokan antara direktori root dokumen yang didefinisikan pada berkas konfigurasi blok server dengan lokasi fisik berkas situs web pada sistem penyimpanan server, atau kesalahan pada aturan pengalihan URL (rewrite rules).

Apache, IIS, dan Nginx adalah server web yang paling banyak digunakan di World Wide Web untuk melayani permintaan halaman situs web dari klien. Ketika Nginx mengembalikan kode status HTTP 404, artinya server berhasil dihubungi namun sumber daya atau berkas yang diminta tidak dapat ditemukan pada jalur direktori yang ditentukan.

Langkah Pemeriksaan dan Perbaikan Error 404 Nginx

Untuk menyelesaikan permasalahan ini secara tuntas, lakukan pemeriksaan sistematis pada konfigurasi server melalui baris perintah terminal dengan tahapan berikut:

1. Periksa Direktori Root pada Blok Server

Buka berkas konfigurasi virtual host Nginx Anda, biasanya terletak di dalam direktori /etc/nginx/conf.d/ atau /etc/nginx/sites-available/. Pastikan direktori pada baris root mengarah secara tepat ke folder penyimpanan berkas web Anda.

server {
    listen 80;
    server_name contoh.com www.contoh.com;
    root /var/www/html/contoh;
    index index.html index.php;

    location / {
        try_files $uri $uri/ =404;
    }
}

2. Verifikasi Keberadaan Berkas dan Hak Akses

Pastikan berkas utama seperti index.html atau index.php benar-benar ada di dalam direktori root tersebut. Selain itu, pastikan pengguna yang menjalankan proses Nginx (biasanya www-data atau nginx) memiliki izin baca (read permission) pada direktori dan berkas tersebut.

Penyebab Umum Gejala Solusi Perbaikan
Salah jalur root Error 404 untuk semua halaman Koreksi path pada direktif root di blok server
File index tidak ada Error 404 saat akses domain utama Unggah berkas index.html atau index.php
Blok try_files keliru Error 404 pada permalink CMS (WordPress) Sesuaikan aturan try_files $uri $uri/ /index.php?$args;
Izin akses folder Error 404 atau 403 Forbidden Ubah kepemilikan dengan chown -R www-data:www-data /path

3. Uji dan Muat Ulang Konfigurasi Nginx

Setelah melakukan perubahan pada berkas konfigurasi, selalu lakukan pengujian sintaks terlebih dahulu sebelum menerapkan perubahan pada peladen produksi:

sudo nginx -t

Jika hasil pengujian menampilkan pesan sukses (syntax is ok dan test is successful), terapkan perubahan dengan memuat ulang layanan Nginx:

sudo systemctl reload nginx

Troubleshooting Lanjutan untuk CMS

Jika Anda menggunakan sistem manajemen konten (CMS) seperti WordPress, pastikan modul pengaturan ulang URL (rewrite module) pada blok location / telah diatur untukmeneruskan permintaan ke file masuk utama CMS. Kegagalan meneruskan parameter ini seringkali memicu error 404 ketika pengguna mengakses halaman selain halaman utama (homepage).