Error 404 Not Found pada Nginx terjadi ketika server web dapat diakses, tetapi gagal menemukan file atau direktori yang diminta oleh klien. Penyebab utamanya meliputi kesalahan jalur direktori pada direktif root, kesalahan penulisan aturan try_files untuk aplikasi berbasis PHP atau Single Page Application (SPA), serta masalah hak akses file (file permissions) pada sistem operasi Linux.
Untuk mengatasi masalah ini secara tuntas, Anda perlu memeriksa file konfigurasi blok server Nginx, memastikan keberadaan file pada direktori sistem, dan mencocokkan izin akses pengguna Nginx (biasanya www-data atau nginx).
Langkah-Langkah Perbaikan Error 404 Nginx
1. Periksa Direktif Root dan Path File
Penyebab paling sering adalah kesalahan menentukan lokasi folder utama website pada file konfigurasi Nginx (biasanya terletak di /etc/nginx/sites-available/default atau direktori domain Anda).
Buka file konfigurasi:
sudo nano /etc/nginx/conf.d/domainanda.conf
Pastikan jalur pada root menunjuk ke direktori yang benar dan file index benar-benar ada di dalamnya:
server {
listen 80;
server_name domainanda.com www.domainanda.com;
root /var/www/domainanda/html;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
}
2. Konfigurasi Try_Files untuk Aplikasi PHP (WordPress / Framework)
Jika error 404 hanya terjadi pada halaman selain halaman utama (permasalahan permalink), blok location untuk PHP belum dikonfigurasi dengan benar untukmeneruskan permintaan ke PHP-FPM.
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
}
3. Perbaiki Hak Akses File dan Direktori
Jika file ada tetapi Nginx tidak memiliki izin membaca file tersebut, Nginx akan merespons dengan error 404 (atau 403 Forbidden tergantung konfigurasi). Jalankan perintah berikut untuk memperbaiki kepemilikan dan izin akses:
sudo chown -R www-data:www-data /var/www/domainanda/html
sudo find /var/www/domainanda/html -type d -exec chmod 755 {} \;
sudo find /var/www/domainanda/html -type f -exec chmod 644 {} \;
4. Test Konfigurasi dan Reload Nginx
Setiap kali Anda mengubah file konfigurasi, selalu lakukan pengecekan sintaks sebelum memuat ulang layanan Nginx:
sudo nginx -t
sudo systemctl reload nginx
Tabel Diagnostik Error 404 Nginx
| Skenario Kasus | Penyebab Utama | Solusi Perbaikan |
|---|---|---|
| Semua halaman selain homepage 404 | Aturan try_files tidak mengarahkan URL ke file router framework/CMS. |
Tambahkan parameter /index.php?$args pada direktif try_files. |
| File HTML statis 404 | Path pada direktif root salah atau file tidak berada di folder tersebut. |
Sesuaikan path absolut pada root dan pastikan file ada. |
| Error 404 khusus file gambar/CSS | Blok location spesifik memblokir ekstensi file atau path alias salah. |
Periksa kembali aturan regex location untuk aset statis. |