Proses debug konfigurasi Nginx dimulai dengan memverifikasi sintaks file menggunakan perintah nginx -t untuk memastikan tidak ada kesalahan pengetikan, direktif yang hilang, atau konflik blok server. Kegagalan memuat konfigurasi sering kali bersumber dari kesalahan penulisan titik koma (;), kesalahan jalur file sertifikat SSL, atau duplikasi nama server blok.
Ketika server web Nginx gagal melakukan restart atau mengalami kesalahan saat melayani permintaan klien, langkah diagnostik wajib dilakukan secara sistematis melalui terminal sistem operasi Linux menggunakan hak akses administratif.
Perintah Utama Debugging Nginx
Berikut adalah daftar perintah esensial yang digunakan secara profesional untuk mendiagnosis dan menguji konfigurasi Nginx sebelum diterapkan ke lingkungan produksi.
| Perintah Terminal | Fungsi Utama | Skenario Penggunaan |
|---|---|---|
sudo nginx -t | Menguji validitas sintaks file konfigurasi | Setiap selesai melakukan perubahan file nginx.conf |
sudo nginx -T | Menampilkan seluruh konfigurasi yang aktif dan dimuat | Audit konfigurasi menyeluruh dan pencarian direktif tersembunyi |
sudo systemctl status nginx | Memeriksa status layanan dan log proses terkini | Memastikan daemon Nginx berjalan normal |
sudo systemctl reload nginx | Memuat ulang konfigurasi tanpa memutus koneksi aktif | Menerapkan perubahan konfigurasi yang sudah valid |
sudo nginx -s stop | Menghentikan proses Nginx secara paksa | Pemeliharaan darurat atau pemulihan sistem |
Analisis Error Log Nginx
Log kesalahan (error log) adalah instrumen utama dalam melakukan debug Nginx configuration. Secara default pada sistem berbasis Ubuntu/Debian, file log terletak di /var/log/nginx/error.log, sedangkan pada CentOS/RHEL berada di /var/log/nginx/error.log.
Untuk memantau log secara real-time saat melakukan pengujian akses, gunakan perintah berikut:
tail -f /var/log/nginx/error.logKesalahan Umum dan Solusi Teknis
- [emerg] 99#99: bind() to 0.0.0.0:80 failed (Address already in use): Port 80 atau 443 sudah digunakan oleh aplikasi lain (seperti Apache atau proses Nginx lain). Hentikan proses yang konflik atau ubah port pada blok server.
- [emerg] 99#99: unknown directive...: Direktif konfigurasi tidak dikenali. Biasanya disebabkan oleh modul Nginx yang belum terinstal atau salah ketik (typo) nama direktif.
- [crit] 99#99: *1 open() "/var/www/html/index.html" failed (13: Permission denied): Pengguna sistem (worker process) tidak memiliki izin baca pada direktori dokumen root. Perbarui kepemilikan dan izin folder menggunakan
chowndanchmod. - [warn] 99#99: conflicting server name... ignored: Ada dua blok
server_namedengan nilai yang sama di dalam file konfigurasi yang berbeda. Hapus duplikasi tersebut.
Pengujian Konfigurasi Langkah demi Langkah
Lakukan prosedur berikut secara berurutan untuk memperbaiki error konfigurasi:
- Buka terminal server dan pastikan Anda memiliki akses sudo.
- Jalankan perintah uji sintaks dasar:
sudo nginx -t. Perhatikan baris keluaran yang menunjukkan letak baris error jika terjadi kegagalan. - Buka file konfigurasi yang bermasalah menggunakan editor teks seperti nano:
sudo nano /etc/nginx/nginx.confatau pada direktorisites-available/. - Perbaiki baris kode yang error, simpan file, lalu jalankan kembali
sudo nginx -thingga muncul pesansyntax is okdantest is successful. - Terapkan konfigurasi baru ke server produksi menggunakan perintah:
sudo systemctl reload nginx.
Tips Lapangan Troubleshooting
Selalu buat cadangan (backup) file konfigurasi sebelum melakukan perubahan besar dengan perintah sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak. Jika terjadi kesalahan fatal yang membuat situs tidak dapat diakses, Anda dapat memulihkannya dengan cepat menggunakan file cadangan tersebut.