1. 404 Hatasının Temel Sebepleri
Öncelikle, Nginx ile karşılaştığınız 404 hatasının nedenini anlamaya çalışalım. Bu hata genellikle aşağıdaki durumlardan birinden kaynaklanır:
- Yanlış URL yapılandırması
- Hedef dosyanın (veya dizinin) olmaması
- Dosya veya dizin izinlerinin yanlış ayarlanması
Nginx, gelen istekleri karşılamak için doğru dosyaları arar. Eğer doğru dosya yolu bulunmazsa, 404 hatası görüntülenir.
2. Nginx Yapılandırmasını Kontrol Edin
Nginx’in konfigürasyon dosyası, sunucunun doğru şekilde çalışabilmesi için çok önemlidir. Genellikle bu dosya `/etc/nginx/nginx.conf` ya da `/etc/nginx/sites-available/` dizininde bulunur. Bu dosyayı kontrol etmek için aşağıdaki komutları kullanabilirsiniz:
sudo nano /etc/nginx/nginx.conf
Dosyayı incelediğinizde, `server` bloğunun doğru yapılandırıldığından emin olun. İşte burada dikkat etmeniz gereken birkaç önemli nokta:
- Root dizini: Nginx, her web sitesinin kök dizinini doğru şekilde belirlemelidir. Örneğin:
server {
listen 80;
server_name orneksite.com;
root /var/www/orneksite;
index index.html index.htm;
}
Yukarıdaki örnekte, Nginx’e `/var/www/orneksite` dizinini root olarak ayarladık. Eğer bu dizin eksikse ya da yanlışsa, 404 hatası alabilirsiniz.
3. Dosya İzinlerini Kontrol Edin
Bir diğer yaygın neden, web sunucusunun ilgili dosyayı okuyamamasıdır. Nginx’in dosyalara erişim izni olmadığında, 404 hatası verir. Bu durumu kontrol etmek için dosya izinlerinizi kontrol etmelisiniz. Aşağıdaki komutla dosya izinlerini kontrol edebilirsiniz:
ls -l /var/www/orneksite
Bu komut, dosya ve dizinlerin izinlerini gösterecektir. Eğer Nginx kullanıcı grubunun (genellikle `www-data`) bu dosyalara okuma izni yoksa, izinleri şu şekilde güncelleyebilirsiniz:
sudo chown -R www-data:www-data /var/www/orneksite
sudo chmod -R 755 /var/www/orneksite
Yukarıdaki komutlarla, Nginx'in dosyalarınıza erişim sağlamasını sağlarsınız.
4. Nginx Hata Günlüklerini İnceleyin
Nginx hata günlükleri, genellikle hatanın kaynağını anlamanıza yardımcı olabilir. Günlükler, Nginx'in `/var/log/nginx/` dizininde yer alır. Bu dizinde iki ana günlük dosyası vardır:
- access.log: Gelen tüm isteklerin kaydı.
- error.log: Sunucuda meydana gelen hataların kaydı.
404 hatasını belirlemek için, `error.log` dosyasını kontrol edebilirsiniz:
sudo tail -f /var/log/nginx/error.log
Buradan, hatanın nedenini tespit edebilir ve çözüm yolu bulabilirsiniz.
5. .htaccess ve URL Yönlendirmelerini Kontrol Edin
Apache'den Nginx’e geçiş yaptıysanız, `.htaccess` dosyalarını kullanmıyorsunuz demektir. Ancak, eski yapılandırmalar ve yönlendirmeler bazen sorun yaratabilir. Eğer eski Apache yapılandırmalarından bir yönlendirme varsa, bu yönlendirmeler Nginx’te düzgün çalışmayabilir. Bu durumda, Nginx yapılandırmasında URL yönlendirmelerini doğru şekilde yapılandırmalısınız.
Örneğin, bir sayfanın eski URL’sinden yeni URL’ye yönlendirilmesi için şu şekilde bir yapılandırma yapabilirsiniz:
server {
listen 80;
server_name orneksite.com;
location /eski-url {
rewrite ^/eski-url$ /yeni-url permanent;
}
}
Bu yönlendirme, ziyaretçileri doğru sayfaya yönlendirecektir.
6. Nginx’i Yeniden Başlatın
Yapılandırmalarda yaptığınız değişikliklerin geçerli olabilmesi için Nginx’i yeniden başlatmanız gerekmektedir. Nginx’i yeniden başlatmak için aşağıdaki komutu kullanabilirsiniz:
sudo systemctl restart nginx
Bu komut, Nginx’in yapılandırma dosyalarını yeniden yükleyecek ve hatayı düzeltebilir.
Sonuç: Nginx 404 Hatası Çözümü
Linux’ta Nginx kullanırken karşılaşılan 404 hatası, çoğunlukla yanlış yapılandırma, eksik dosyalar veya izin sorunları nedeniyle oluşur. Yukarıda verdiğimiz adımları takip ederek bu hatayı hızlıca çözebilirsiniz. Unutmayın, doğru dosya yolu, izinler ve yönlendirmeler ile Nginx’inizi sağlıklı bir şekilde çalıştırabilirsiniz.