Nginx "Too Many Redirects" Hatası Nedir?
"Too Many Redirects" hatası, web tarayıcınızın bir siteyi açmaya çalışırken sürekli olarak bir yönlendirme döngüsüne girmesi durumunda ortaya çıkar. Başka bir deyişle, site bir URL'yi sürekli olarak başka bir URL'ye yönlendiriyor ve bu döngü hiç bitmiyor. Bu da tarayıcının daha fazla yönlendirme yapmasını engeller ve sonunda hata mesajını gösterir.
Eğer Nginx kullanıyorsanız, bu hata genellikle yanlış yapılandırılmış yönlendirmelerden veya SSL ayarlarında yapılan hatalardan kaynaklanabilir. Hadi bu sorunu nasıl çözeceğimizi adım adım inceleyelim.
1. Yönlendirme Döngüsünü Tanıyın
İlk adım, yönlendirme döngüsünün nerede başladığını bulmaktır. Genellikle, aşağıdaki sebeplerden biri bu döngüyü tetikler:
- HTTP ile HTTPS Yönlendirme: HTTP'den HTTPS'ye yapılan bir yönlendirme, eğer yapılandırma hatalıysa, sürekli bir döngüye girebilir. Örneğin, HTTP'den HTTPS'ye yönlendiren bir kural, HTTPS'yi tekrar HTTP'ye yönlendirebilir.
- Yanlış Yönlendirme Kuralları: Nginx konfigürasyonunda, bir URL'yi bir başka URL'ye yönlendiren kurallar, bazen birbirini tekrar eder şekilde ayarlanabilir.
Bunları kontrol etmek için, web tarayıcınızın geliştirici araçlarını kullanarak yönlendirme başlıklarını takip edebilirsiniz.
2. Nginx Yönlendirme Konfigürasyonunu Düzenleme
Yönlendirme sorunları çoğu zaman nginx.conf dosyasındaki hatalı kurallardan kaynaklanır. Eğer HTTP'den HTTPS'ye doğru bir yönlendirme yapmak istiyorsanız, doğru yapılandırma şu şekilde olmalıdır:
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
Bu kod, tüm HTTP isteklerini doğru bir şekilde HTTPS'ye yönlendirir. Ancak, dikkat etmeniz gereken şey, www ve non-www arasında karışıklık yaratmamaktır. Eğer www'yi kullanıyorsanız, doğru ayar şu şekilde olmalıdır:
server {
listen 80;
server_name yourdomain.com;
return 301 https://www.yourdomain.com$request_uri;
}
Bu sayede her iki alan da doğru bir şekilde yönlendirilir ve yönlendirme döngüsünden kurtulursunuz.
3. SSL/TLS Ayarlarını Kontrol Edin
Eğer SSL sertifikası kullanıyorsanız, yönlendirmelerin doğru şekilde yapılması çok önemlidir. SSL sertifikasının düzgün kurulmaması, HTTP'den HTTPS'ye geçişi engelleyebilir. Bu, Too Many Redirects hatasına yol açabilir.
Yine, Nginx konfigürasyon dosyasındaki SSL kısmını gözden geçirin. Aşağıda doğru bir SSL yapılandırması örneği verilmiştir:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /etc/nginx/ssl/yourdomain.com.crt;
ssl_certificate_key /etc/nginx/ssl/yourdomain.com.key;
# SSL güvenlik ayarları
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
}
SSL sertifikanızın doğru şekilde yüklendiğinden emin olun. Eğer bu kısımlarda eksiklik veya hata varsa, yönlendirme döngüsüne yol açabilir.
4. Tarayıcı Önbelleğini Temizleyin
Bazen bu tür yönlendirme hataları, tarayıcıda biriken eski önbellek verileri yüzünden oluşur. Tarayıcı önbelleğini temizleyerek eski yönlendirmeleri sıfırlayın ve tekrar deneyin.
Tarayıcı önbelleğini temizledikten sonra, sayfanızı yeniden yüklemeyi unutmayın.
5. Nginx'i Yeniden Başlatın
Yapılandırma değişikliklerinizi kaydettikten sonra, Nginx'i yeniden başlatmanız gerekir. Aksi takdirde, yeni ayarlar aktif olmayacaktır. Aşağıdaki komutla Nginx'i yeniden başlatabilirsiniz:
sudo systemctl restart nginx
Bu komut, tüm yeni yapılandırmaların aktif olmasını sağlar.
Sonuç
"Too Many Redirects" hatası, genellikle yanlış yapılandırılmış yönlendirme kurallarından kaynaklanır. Nginx'teki yönlendirme kurallarını dikkatlice kontrol ederek ve SSL ayarlarını düzgün şekilde yaparak bu hatayı çözebilirsiniz. Ayrıca, tarayıcı önbelleğini temizlemek ve Nginx'i yeniden başlatmak da önemlidir. Sorunu doğru bir şekilde çözmek, kullanıcılarınızın sitenizi sorunsuz bir şekilde erişebilmesini sağlayacaktır.