Nginx "Too Many Redirects" Hatası Nedir?
Neden Oluşur?
1. Yanlış Yönlendirme Zinciri: Bir URL'nin başka bir URL'ye yönlendirilmesi, ardından tekrar eski URL'ye dönülmesi. Bu, sonsuz bir yönlendirme döngüsü yaratır.
2. SSL ve HTTP Yönlendirmeleri: HTTPS'ye geçiş yapan sitelerde, hem HTTP'den HTTPS'ye yönlendirme hem de SSL yapılandırmasında yanlış ayarlar olabilir.
3. Nginx Konfigürasyon Hataları: Yanlış yapılandırılmış bir Nginx konfigürasyonu da bu hataya yol açabilir.
4. Tarayıcı Önbelleği: Bazen sorun sadece tarayıcı tarafında, eski yönlendirmeleri saklayan bir önbellek olabilir.
Çözüm Yolları
# 1. Nginx Konfigürasyonunu Gözden Geçirin
Nginx’in konfigürasyon dosyasına (`nginx.conf` veya ilgili site yapılandırma dosyasına) göz atın. Aşağıdaki gibi bir yönlendirme döngüsü oluşturacak ayarlamalardan kaçının:
```nginx
server {
listen 80;
server_name example.com www.example.com;
# Hatalı bir yönlendirme
rewrite ^ https://example.com$request_uri permanent;
}
```
Eğer HTTPS'ye geçiş yapmak istiyorsanız, aşağıdaki gibi doğru bir yapılandırma kullanmanız gerekir:
```nginx
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# SSL konfigürasyonu
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/certificate.key;
location / {
# Web sitesi dosyalarınız burada
}
}
```
Burada dikkat etmeniz gereken en önemli şey, HTTP'den HTTPS'ye olan yönlendirme işlemlerinin doğru yapılandırılması.
# 2. SSL Yönlendirmelerini Kontrol Edin
SSL'yi düzgün yapılandırmak için şu örneği dikkate alabilirsiniz:
```nginx
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
```
Bu, HTTP'den HTTPS'ye doğru bir şekilde yönlendirme yapacaktır.
# 3. Tarayıcı Önbelleğini Temizleyin
Tarayıcıyı kapatıp açarak, önbelleği temizlemek için şu adımları izleyebilirsiniz:
- Chrome: Ayarlar > Gizlilik ve Güvenlik > Tarama Verilerini Temizle.
- Firefox: Ayarlar > Gizlilik ve Güvenlik > Çerezler ve Site Verileri > Verileri Temizle.
# 4. Yönlendirme Döngüsünü Kontrol Etmek İçin Logları İnceleyin
```bash
tail -f /var/log/nginx/error.log
```
Loglarda görülen "too many redirects" hataları, genellikle yanlış yapılandırılmış yönlendirmelere işaret eder.