Cara Mengatasi Error 403 Forbidden pada Server Nginx

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

3. 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;
    }
}
PenyebabTindakan Perbaikan
Izin File Terlalu KetatUbah ke 644
Izin Direktori SalahUbah ke 755
User Nginx Tidak Memiliki AksesChown ke www-data
File Index HilangTambahkan file index atau aktifkan autoindex
Konfigurasi .htaccessNginx 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.log

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