sunucuhataları
teknik çözüm merkezi
Ara Giriş Yap Üye Ol
🏠 Ana Sayfa 📚 Kurulum Rehberleri
Kategoriler
🌐 Web Sunucuları 🐧 İşletim Sistemleri 📦 Sanallaştırma & VPS 🖥️ Kontrol Panelleri 🔒 SSL & Güvenlik 📝 CMS & Uygulamalar 🗄️ Veritabanı 📧 Mail Sunucusu 🗨️ Forum ℹ️ Hakkımızda 📧 İletişim
Giriş Yap Üye Ol
Ana Sayfa Web Sunucuları Cloudflare 521 Web Server Is Down Hatası Nasıl ...
🌐 Web Sunucuları

Cloudflare 521 Web Server Is Down Hatası Nasıl Çözülür?

Cloudflare 521 hatası bağlantının reddedildiğini gösterir. Sunucu servisi ve firewall Cloudflare IP ayarlarını kontrol edin.

📅 5 Ocak 2025 👁 53 görüntülenme ⏱ 5 dk okuma
𝕏 Paylaş
📋 İçindekiler göster/gizle

Cloudflare 521 Hatası Nedir?

Cloudflare 521 hatası "Web Server Is Down" mesajıyla birlikte görünür ve Cloudflare'in kaynak (origin) sunucunuzun 80 (HTTP) veya 443 (HTTPS) portuna bağlantı kurmaya çalıştığında bağlantının reddedildiğini (TCP RST) gösterir. 522 hatasından farkı şudur: 522'de bağlantı kurulamamakta veya zaman aşımı olmaktadır; 521'de ise sunucu bağlantıyı aktif olarak reddetmektedir.

Bu durum çeşitli senaryolarda gerçekleşebilir: web sunucusu (Nginx, Apache) servisi çalışmıyor olabilir, firewall Cloudflare'in IP bloklarını engelliyor olabilir, sunucu yalnızca belirli IP'lere yanıt verecek şekilde konfigüre edilmiş olabilir ya da Cloudflare'in bağlandığı port üzerinde hiçbir servis dinlemiyor olabilir. Hata tamamen sunucu taraflıdır; Cloudflare bu hatayı üreten taraf değil, durumu raporlayan araçtır.


Olası Nedenler

  • Web sunucusu servisi durdurulmuş: Nginx veya Apache güncellemeden sonra restart yapılmamış.
  • Firewall Cloudflare IP'lerini engelliyor: UFW, iptables veya CSF Cloudflare bloklarını reddediyor.
  • Port 80 veya 443 kapalı: Servis farklı bir portta dinliyor ya da hiç dinlemiyor.
  • IP tabanlı kısıtlama: Sunucu sadece belirli IP'lerden gelen istekleri kabul edecek şekilde yapılandırılmış.
  • fail2ban veya mod_evasive engeli: Cloudflare IP'leri ban listesine girmiş.
  • Cloudflare DNS kaydında yanlış IP: A kaydı güncel sunucu IP'sini göstermiyor.

Çözüm Adımları

SSH/Terminal ile Temel Kontroller

Sunucuya bağlanarak web sunucusu servisi ve port durumunu kontrol edin.

# Web sunucusu servisi çalışıyor mu?
sudo systemctl status nginx
sudo systemctl status apache2

# Servisi başlat
sudo systemctl start nginx
sudo systemctl start apache2

# Portları dinleyen süreçler
sudo ss -tlnp | grep -E ':80|:443'
sudo netstat -tlnp | grep -E ':80|:443'

# Yerel bağlantı testi (sunucu kendine bağlanabiliyor mu?)
curl -I http://127.0.0.1
curl -Ik https://127.0.0.1

# Hata loglarını kontrol et
sudo tail -50 /var/log/nginx/error.log
sudo tail -50 /var/log/apache2/error.log

Cloudflare IP Adreslerine Firewall İzni (UFW)

UFW kullanan sunucularda Cloudflare IP bloklarına 80 ve 443 portlarından erişim izni verin.

# Mevcut UFW kurallarını listele
sudo ufw status verbose

# Cloudflare IPv4 listesi
CLOUDFLARE_IPS="173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22
141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20
197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13
104.24.0.0/14 172.64.0.0/13 131.0.72.0/22"

for ip in $CLOUDFLARE_IPS; do
    sudo ufw allow from $ip to any port 80 proto tcp
    sudo ufw allow from $ip to any port 443 proto tcp
done

# Cloudflare IPv6 listesi
CLOUDFLARE_IPV6="2400:cb00::/32 2606:4700::/32 2803:f800::/32 2405:b500::/32
2405:8100::/32 2a06:98c0::/29 2c0f:f248::/32"

for ip in $CLOUDFLARE_IPV6; do
    sudo ufw allow from $ip to any port 80 proto tcp
    sudo ufw allow from $ip to any port 443 proto tcp
done

sudo ufw reload

iptables ile Cloudflare IP İzni

iptables kullanıyorsanız Cloudflare IP bloklarına izin verin.

# Cloudflare IP'lerini iptables whitelist'e ekle
for ip in 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 \
          141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 \
          197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 \
          104.24.0.0/14 172.64.0.0/13 131.0.72.0/22; do
    sudo iptables -I INPUT -s $ip -p tcp --dport 80 -j ACCEPT
    sudo iptables -I INPUT -s $ip -p tcp --dport 443 -j ACCEPT
done

# Kuralları kalıcı yap
sudo apt install iptables-persistent -y
sudo netfilter-persistent save

cPanel/WHM ile CSF Firewall Ayarı

cPanel sunucularında ConfigServer Security & Firewall (CSF) kullanılıyorsa Cloudflare IP'lerini whitelist'e ekleyin.

# CSF whitelist dosyasını düzenle
sudo nano /etc/csf/csf.allow
# Cloudflare IP bloklarını satır satır ekle:
# 173.245.48.0/20 # Cloudflare
# 103.21.244.0/22 # Cloudflare
# (diğerleri...)

# CSF'yi yeniden başlat
sudo csf -r

# WHM > ConfigServer Security & Firewall > Firewall Allow IPs

Nginx ile Gerçek Ziyaretçi IP'sini Alma (CF-Connecting-IP)

Cloudflare arkasında çalışırken gerçek ziyaretçi IP'sini loglamak için Nginx konfigürasyonunu güncelleyin.

sudo nano /etc/nginx/nginx.conf
http {
    # Cloudflare IP'leri için gerçek IP almak
    set_real_ip_from 173.245.48.0/20;
    set_real_ip_from 103.21.244.0/22;
    set_real_ip_from 103.22.200.0/22;
    set_real_ip_from 103.31.4.0/22;
    set_real_ip_from 141.101.64.0/18;
    set_real_ip_from 108.162.192.0/18;
    set_real_ip_from 190.93.240.0/20;
    set_real_ip_from 188.114.96.0/20;
    set_real_ip_from 197.234.240.0/22;
    set_real_ip_from 198.41.128.0/17;
    set_real_ip_from 162.158.0.0/15;
    set_real_ip_from 104.16.0.0/13;
    set_real_ip_from 104.24.0.0/14;
    set_real_ip_from 172.64.0.0/13;
    set_real_ip_from 131.0.72.0/22;
    real_ip_header CF-Connecting-IP;
}
sudo nginx -t && sudo systemctl reload nginx

Cloudflare DNS Kaydını Doğrulama

DNS A kaydının güncel sunucu IP'sini gösterdiğinden emin olun.

# Cloudflare'in hangi IP'ye bağlandığını gör
dig siteniz.com A +short

# Sunucunun gerçek IP'si
curl -4 icanhazip.com
curl -4 ifconfig.me

# İkisi aynı mı? Farklıysa DNS kaydını Cloudflare Dashboard'dan güncelleyin

Özet ve Önleyici Tedbirler

  • Web sunucusu servisine systemd Restart=always ekleyerek otomatik yeniden başlatmayı sağlayın.
  • Cloudflare IP listesini düzenli kontrol edin; liste güncellenmekte olup değişebilir.
  • fail2ban konfigürasyonuna Cloudflare IP'lerini ignoreip olarak ekleyin.
  • Cloudflare Dashboard üzerinden Health Checks oluşturun; sunucu çöktüğünde anında e-posta alın.
  • Sunucu IP değişikliklerinde DNS A kaydını derhal güncelleyin.
  • Cloudflare Analytics üzerinden hata oranlarını düzenli olarak izleyin.

İlgili Makaleler

🤔 Bu kurulumda sorun mu yaşıyorsunuz?

Hata mesajınızı kopyalayıp foruma konu açın. Topluluğumuz size özel durumunuza göre yardımcı olacaktır.

🗨️ Foruma Katıl & Yardım Al
Etiketler: #cloudflare #nginx #5xx-hata

Yorumlar

Henüz yorum yok. İlk yorumu siz yapın!

Yorum Yap

Yorumunuz onaylandıktan sonra yayınlanır.