Nginx-də ERR_TOO_MANY_REDIRECTS Xətasını Necə Düzəltmək Olar?
ERR_TOO_MANY_REDIRECTS xətası serverin bir URL-dən digərinə davamlı yönləndirmə etməsi nəticəsində yaranır. Nginx serverlərində bu problem əsasən konfiqurasiya xətaları, SSL parametrləri və ya Apache kimi digər xidmətlərlə konfliktlər səbəbindən baş verə bilər.
ERR_TOO_MANY_REDIRECTS Xətasının Ümumi Səbəbləri
Nginx və Apache arasında konfliktlər: Əgər hər iki server yönləndirmə qaydaları ilə konfiqurasiya edilibsə, bu, loop yarada bilər.
Yanlış SSL konfiqurasiyası: HTTP və HTTPS tənzimləmələri düzgün idarə olunmazsa, yönləndirmə problemləri yaranır.
Yanlış server_name direktivi: Nginx konfiqurasiyasında səhv server_name parametri səhv yönləndirmələrə səbəb ola bilər.
Müxtəlif protokollardan istifadə: Saytdakı bəzi resursların (şəkillər, skriptlər) HTTP üzərindən, digərlərinin HTTPS üzərindən çağırılması uyğunsuzluqlara gətirib çıxara bilər.
Cloudflare konfiqurasiyası: Yanlış SSL rejimi seçildikdə yönləndirmə loop-u yarana bilər.
Keşlənmiş məlumatlar: Brauzer və ya server tərəfindən saxlanmış köhnə yönləndirmə məlumatları davamlı xətaya səbəb ola bilər.
HTTP-dən HTTPS-ə səhv yönləndirmə: Əgər sayt artıq HTTPS üzərində işləyirsə və HTTP-dən yönləndirmə yenidən edilir, bu loop ( sonsuz döngü) yarada bilər.
ERR_TOO_MANY_REDIRECTS Xətasını Aradan Qaldırmağın Həlləri
- Nginx Konfiqurasiyasını Yoxlayın
Yönləndirmə qaydalarının düzgün yazıldığını yoxlayın:
server {
listen 80;
server_name sizindomen.az;
return 301 https://$host$request_uri;
}
Bu konfiqurasiya bütün HTTP trafiki HTTPS-ə yönləndirir. Artıq yönləndirmələrin olmadığından əmin olun.
- Ayrı Server Blokları Qurun
HTTP və HTTPS üçün ayrı server blokları yaradaraq trafik idarəsini optimallaşdırın:
server {
listen 80;
server_name www.sizindomen.az sizindomen.az;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name www.sizindomen.az sizindomen.az;
ssl_certificate /etc/letsencrypt/live/sizindomen.az/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/sizindomen.az/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
location / {
root /home/website/public;
index index.html index.htm;
proxy_pass http://unix:/run/gunicorn.sock;
include proxy_params;
}
}
Birinci blok HTTP trafiki HTTPS-ə yönləndirir.
İkinci blok HTTPS trafikini qəbul edir və SSL sertifikatlarını konfiqurasiya edir.
SSL Parametrlərini Yoxlayın
SSL sertifikatının düzgün quraşdırıldığını yoxlayın.
ssl_certificate və ssl_certificate_key yollarının düzgün olduğuna əmin olun.
SSL/TLS protokollarını və şifrələmə parametrlərini yoxlayın.
Mixed Content Problemini Aradan Qaldırın
Saytınızda HTTP üzərindən çağırılan resursları müəyyənləşdirin və HTTPS-ə yeniləyin. Bu, lazımsız yönləndirmələrin qarşısını alacaq.
Cloudflare Parametrlərini Düzgün Qurun
Əgər Cloudflare istifadə edirsinizsə, SSL encryption mode rejimini Full və ya Full (Strict) olaraq təyin edin.
Keşi Təmizləyin
Brauzerin keşini və kukilərini silin.
Saytı incognito mode və ya başqa bir brauzerdə açaraq problemi yoxlayın.
.htaccess Faylını Reset Edin
Əgər Apache ilə birlikdə Nginx istifadə edirsinizsə, .htaccess faylını nəzərdən keçirin və artıq yönləndirmələri silin.
Konfiqurasiyaları Test Edin
Düzəlişlər etdikdən sonra aşağıdakı əmri işlədərək Nginx konfiqurasiyasını yoxlayın:
nginx -t
Hər hansı bir xəta varsa, düzəldib serveri yenidən başladın:
systemctl restart nginx
Redirect Loop-lardan Qaçınmaq üçün Ən Yaxşı Təcrübələr
✔ Hər dəyişiklikdən sonra nginx -t ilə konfiqurasiyanı yoxlayın.
✔ Minimal və dəqiq yönləndirmə qaydalarından istifadə edin.
✔ Sayt kodunda HTTP əvəzinə HTTPS linklərindən istifadə edin.
✔ Cloudflare və digər üçüncü tərəf xidmətlərinin ayarlarını mütəmadi yoxlayın.
✔ Nginx və Apache arasında uyğunluğu təmin edin.
Nəticə
Yuxarıda göstərilən həlləri tətbiq edərək, Nginx serverinizdə ERR_TOO_MANY_REDIRECTS problemini uğurla həll edə bilərsiniz.