Penyebab Utama Error 403 Forbidden
Error 403 Forbidden pada Nginx menandakan bahwa server memahami permintaan Anda, namun menolak untuk memberikan akses. Hal ini umumnya terjadi bukan karena masalah kredensial, melainkan karena konfigurasi izin akses (permissions) yang salah pada sistem file atau pengaturan direktori di dalam file konfigurasi Nginx.
Langkah Perbaikan Teknis
Untuk mengatasi masalah ini, Anda perlu memeriksa tiga aspek utama: hak akses file, kepemilikan direktori, dan konfigurasi index pada blok server Nginx.
1. Memeriksa Hak Akses File dan Direktori
Nginx memerlukan izin baca (read) untuk file dan izin eksekusi (execute) untuk direktori agar dapat menyajikan konten. Gunakan perintah berikut untuk memastikan izin yang benar:
# Mengatur izin direktori ke 755
find /var/www/html -type d -exec chmod 755 {} \;
# Mengatur izin file ke 644
find /var/www/html -type f -exec chmod 644 {} \;2. Memastikan Kepemilikan (Ownership)
Pastikan pengguna yang menjalankan Nginx (biasanya www-data) memiliki akses ke direktori web Anda:
chown -R www-data:www-data /var/www/html3. Memeriksa Konfigurasi Index
Jika direktori tidak memiliki file indeks (seperti index.html atau index.php) dan fitur autoindex dimatikan, Nginx akan menolak akses. Periksa file konfigurasi Nginx Anda:
server {
location / {
index index.html index.php;
}
}| Penyebab | Tindakan Perbaikan |
|---|---|
| Izin File Terlalu Ketat | Ubah ke 644 |
| Izin Direktori Salah | Ubah ke 755 |
| User Nginx Tidak Memiliki Akses | Chown ke www-data |
| File Index Hilang | Tambahkan file index atau aktifkan autoindex |
| Konfigurasi .htaccess | Nginx tidak membaca .htaccess, pindahkan aturan ke nginx.conf |
Troubleshooting Lanjutan
Jika langkah di atas belum berhasil, periksa log kesalahan Nginx untuk mendapatkan detail spesifik mengenai alasan penolakan akses:
tail -f /var/log/nginx/error.logPerhatikan pesan error yang muncul. Jika tertulis directory index of "/var/www/html/" is forbidden, artinya Anda perlu mengaktifkan autoindex on; di dalam blok location jika memang ingin menampilkan daftar file, atau pastikan file index.html tersedia di direktori tersebut.