1. Nginx 404 Hatası Nedir?
Öncelikle, 404 hatası nedir, onu anlamamız lazım. İnternetteki her sayfa bir URL ile ilişkilidir. Nginx, bir kullanıcı bir sayfayı istediğinde, o sayfayı bulmak için çeşitli yolları kontrol eder. Eğer belirtilen sayfa sunucuda yoksa, 404 hatası verir. Yani basitçe, aradığınız içerik bulunamadı demek.
Ama bu hata neden oluyor? Nginx, bazen yanlış yapılandırmalar veya dosya eksiklikleri nedeniyle istenen sayfayı bulamayabiliyor.
2. Nginx Yapılandırma Dosyasını Kontrol Etmek
Çoğu zaman 404 hatasının nedeni, yanlış yapılandırılmış bir Nginx konfigürasyon dosyasından kaynaklanır. Nginx, bu dosyada belirtilen dizinlere ve dosyalara ulaşarak, doğru sayfayı bulmak için çabalar. Eğer yanlış bir yol gösterilmişse, 404 hatası alırsınız.
Çözüm: İlk yapmanız gereken şey, Nginx konfigürasyon dosyasını kontrol etmek. Bu dosya genellikle şu yol üzerinde bulunur:
/etc/nginx/sites-available/default
Bu dosyayı bir metin düzenleyici ile açın:
sudo nano /etc/nginx/sites-available/default
Dosyada "root" direktifinin doğru dizini gösterdiğinden emin olun. Örneğin:
root /var/www/html;
Yolun doğru olduğundan emin olduktan sonra, Nginx yapılandırmanızı test etmek için şu komutu çalıştırın:
sudo nginx -t
Eğer test başarılıysa, Nginx'i yeniden başlatın:
sudo systemctl restart nginx
3. Dosya ve Dizin İzinlerini Kontrol Etmek
Bir diğer yaygın sorun ise, dosya ve dizin izinlerinin yanlış ayarlanmış olmasıdır. Eğer Nginx, belirtilen dosyaya veya dizine erişim iznine sahip değilse, 404 hatası alabilirsiniz.
Çözüm: Nginx'in erişim hakkına sahip olduğundan emin olun. Dosya ve dizin izinlerini kontrol etmek için şu komutu kullanabilirsiniz:
sudo chmod -R 755 /var/www/html
Bu, Nginx'in dosyaları okuma, yazma ve çalıştırma izni vermesini sağlar. Aynı zamanda sahipliği de kontrol etmek önemlidir:
sudo chown -R www-data:www-data /var/www/html
4. Web Uygulamanızın Hata Loglarını İncelemek
Bazen, sorunlar daha derindir ve Nginx logları bu konuda size yardımcı olabilir. Nginx, her isteği loglar ve hataları bu loglarda saklar.
Çözüm: Hata loglarını kontrol ederek, 404 hatasının nedenini daha kolay anlayabilirsiniz. Nginx hata loglarını şu komutla kontrol edebilirsiniz:
sudo tail -f /var/log/nginx/error.log
Loglarda 404 hatası ile ilgili bir mesaj gördüğünüzde, bu size sorunun hangi dosya veya dizinden kaynaklandığı hakkında bilgi verebilir.
5. .htaccess Dosyasını Kontrol Etmek
Eğer Nginx üzerinde WordPress veya benzeri bir CMS kullanıyorsanız, .htaccess dosyasının da etkisi olabilir. Bu dosya, Apache sunucusunda kullanılan bir yapılandırma dosyasıdır ancak bazen Nginx'te de benzer sorunlara yol açabilir.
Çözüm: .htaccess dosyasını kontrol edin. Eğer bu dosya bulunuyorsa, onu Nginx yapılandırmasına uygun şekilde düzenleyin.
6. Nginx’te URL Yeniden Yazma (Rewrite) Kurallarını Doğru Ayarlamak
Bazı durumlarda, URL yeniden yazma kuralları da 404 hatasına yol açabilir. Özellikle dinamik URL'ler kullanan bir web sitesi geliştiriyorsanız, bu kuralların doğru şekilde yapılandırıldığından emin olmalısınız.
Çözüm: Nginx yapılandırmasında, yeniden yazma kurallarını şu şekilde ayarlayabilirsiniz:
rewrite ^/oldpage$ /newpage permanent;
Bu, eski sayfa URL'sine gelen istekleri doğru şekilde yeni sayfaya yönlendirecektir.
Sonuç
Artık Nginx 404 hatasını nasıl çözebileceğiniz konusunda bilgi sahibisiniz. Her bir adımdan sonra, web sitenizin çalıştığından emin olmak için yeniden testler yapmayı unutmayın. 404 hatası, genellikle basit yapılandırma hatalarından kaynaklanır, ancak doğru bir şekilde çözülmesi mümkündür. Sabırlı olun ve her adımı dikkatle uygulayın!