HTTP 503 Hatası Service Unavailable: Nedenleri ve Çözümü

HTTP 503 Hatası Nedir?
HTTP 503 hatası (Service Unavailable), web sunucusunun isteğinizi geçici olarak işleyemediğini belirten sunucu taraflı bir durum kodudur. 404 hatasından (sayfa bulunamadı) veya 500 hatasından (dahili sunucu hatası) farklı olarak 503, özellikle geçici bir duruma işaret eder — sunucu var ve erişilebilir, ancak şu anda içerik sunamıyor.
HTTP spesifikasyonuna (RFC 9110) göre sunucu, istemcinin yeniden denemeden önce ne kadar beklemesi gerektiğini belirten bir Retry-After başlığı içerebilir. Bu başlık tarayıcılara, arama motoru tarayıcılarına ve API istemcilerine hizmetin ne zaman tekrar çevrimiçi olacağını bildirir.
Anahtar kelime "geçici"dir. Doğru yapılandırılmış bir 503 yanıtı, Google ve diğer arama motorlarına sayfayı dizinden kaldırmak yerine daha sonra tekrar gelmelerini söyler. Bu nedenle web siteleri planlı bakım sırasında 503 kullanır — SEO sıralamalarını korur.
503 Hatası Nasıl Görünür
Mesajın ifadesi ne olursa olsun, altta yatan neden her zaman aynıdır: sunucu isteğinizi aldı ancak şu anda yerine getiremiyor.
503 Service Unavailable
503 Service Temporarily Unavailable
HTTP Error 503. The service is unavailable.
Error 503 Backend Fetch Failed (Varnish önbelleği)
503 Service Unavailable — No server is available to handle this request (Apache)
503 Service Temporarily Unavailable — nginx (Nginx)
Error 503 (Service Unavailable)!! 1 (Cloudflare kaynak sunucu hatası)
Site is temporarily unavailable veya Briefly unavailable for scheduled maintenance (WordPress)
HTTP 503 Hatasının Yaygın Nedenleri
Asıl nedeni anlamak, çözüme en hızlı yoldur. İşte bir sunucunun 503 döndürmesinin en yaygın nedenleri, sıklığına göre sıralanmış.
Sunucu aşırı yüklenmesi — Sunucu CPU, RAM veya bağlantı sınırına ulaşmıştır. Bu, trafik artışları, viral içerikler veya botların siteyi agresif bir şekilde taraması sırasında yaşanır.
Planlı bakım — Site yöneticisi, güncellemeler, taşımalar veya dağıtımlar için sunucuyu bilinçli olarak çevrimdışına almıştır. Doğru yapılandırılmış bakım sayfaları Retry-After başlığıyla 503 döndürür.
Hatalı eklenti veya tema — WordPress, Joomla veya Magento gibi CMS platformlarında hatalı bir eklenti, tema güncelleme çakışması veya uyumsuz bir PHP sürümü uygulamayı çökertebilir ve 503 tetikleyebilir.
PHP-FPM veya uygulama çökmesi — PHP süreç yöneticisi (php-fpm) boş işçi süreçleri kalmamıştır veya uygulama arka ucu (Node.js, Python, Ruby) çökmüştür. Web sunucusu (Nginx/Apache) hâlâ çalışıyor ancak istekleri yönlendirecek bir arka uç yok.
Veritabanı aşırı yüklenmesi — Veritabanı (MySQL, PostgreSQL) bağlantı sınırına ulaşmış, belleği dolmuş veya uzun süren bir sorgu tarafından kilitlenmiştir. Uygulama veri çekemez ve 503 döndürür.
DDoS saldırısı — Dağıtık hizmet engelleme saldırısı sunucuyu isteklerle doldurarak kaynakları tüketir ve meşru isteklerin 503 ile başarısız olmasına neden olur.
DNS veya CDN yapılandırma hatası — Cloudflare, AWS CloudFront veya başka bir CDN, DNS değişiklikleri, süresi dolmuş SSL veya IP beyaz listesi sorunları nedeniyle kaynak sunucuya ulaşamıyor.
Kaynak sınırlarına ulaşılması — Paylaşımlı barındırma planlarının CPU, RAM ve eşzamanlı bağlantı konusunda katı sınırları vardır. Bu sınırların aşılması, barındırma sağlayıcısının istekleri kısıtlamasına veya 503 ile engellemesine neden olur.
Ziyaretçiler İçin Çözüm: Neler Yapabilirsiniz
Başka birinin web sitesinde 503 hatası gören bir ziyaretçiyseniz, sorun onların sunucusundadır — sizin cihazınızda değil. Ancak deneyebileceğiniz birkaç şey var.
Bekleyin ve yenileyin — 503 geçici olduğundan, 30-60 saniye bekleyin ve sayfayı yenileyin. Sunucu yeniden başlatılıyor veya bir dağıtımı tamamlıyor olabilir.
Sitenin herkes için çökmüş olup olmadığını kontrol edin — DNS Robot'un HTTP Headers aracını kullanarak sunucunun harici bir sunucudan döndürdüğü yanıt kodunu kontrol edin. Herkes için 503 dönüyorsa site gerçekten çökmüştür.
Tarayıcı önbelleğinizi temizleyin — Nadir durumlarda tarayıcınız bir 503 yanıt sayfasını önbelleğe almış olabilir. Önbelleği temizleyin ve tekrar deneyin.
Farklı bir tarayıcı veya cihaz deneyin — Tarayıcıya özgü önbellek veya eklenti sorunlarını devre dışı bırakın.
Sitenin sosyal medyasını kontrol edin — Site, X (Twitter) veya durum sayfasında planlı bakım ya da bilinen bir kesinti hakkında duyuru yapmış olabilir.
Çözüm 1: Web Sunucusunu Yeniden Başlatın
Yeniden başlatmadan sonra web sitesini hemen test edin. 503 hatası birkaç dakika içinde tekrar geliyorsa, asıl neden hâlâ mevcut demektir — günlükleri ve kaynakları kontrol etmeye devam edin.
# Restart Nginx
sudo systemctl restart nginx
# Restart Apache
sudo systemctl restart apache2 # Debian/Ubuntu
sudo systemctl restart httpd # CentOS/RHEL
# Restart PHP-FPM
sudo systemctl restart php8.2-fpm # Adjust version as needed
# Restart Node.js (PM2)
pm2 restart all
# Restart entire server (last resort)
sudo rebootÇözüm 2: Sunucu Kaynaklarını Kontrol Edin (CPU, RAM, Disk)
CPU veya RAM %90 ve üzerindeyse uygulamanızı optimize etmeniz, kontrolsüz süreçleri sonlandırmanız veya sunucunuzu yükseltmeniz gerekir. Disk alanı doluysa günlük dosyalarını, eski yedekleri veya geçici dosyaları temizleyin.
# Check CPU and memory usage
top -bn1 | head -20
# Check disk space
df -h
# Check memory in detail
free -m
# Check active connections
ss -s
# Find processes using the most memory
ps aux --sort=-%mem | head -10
# Find processes using the most CPU
ps aux --sort=-%cpu | head -10Çözüm 3: Hata Günlüklerini Kontrol Edin
503'e neden olan yaygın günlük mesajları:
"upstream timed out" veya "no live upstreams" (Nginx) — PHP-FPM veya arka uç uygulama yanıt vermiyor. php-fpm'i yeniden başlatın veya zaman aşımını artırın.
"server reached pm.max_children" (PHP-FPM) — Tüm PHP işçi süreçleri meşgul. PHP-FPM havuz yapılandırmasında pm.max_children değerini artırın.
"Too many connections" (MySQL) — Veritabanı bağlantı sınırı dolmuş. MySQL yapılandırmasında max_connections değerini artırın veya sorguları optimize edin.
"Cannot allocate memory" — Sunucunun RAM'i tükenmiş. Gereksiz süreçleri sonlandırın veya swap alanı ekleyin.
# Nginx error log
tail -50 /var/log/nginx/error.log
# Apache error log
tail -50 /var/log/apache2/error.log # Debian/Ubuntu
tail -50 /var/log/httpd/error_log # CentOS/RHEL
# PHP-FPM log
tail -50 /var/log/php8.2-fpm.log
# WordPress debug log (if WP_DEBUG_LOG is enabled)
tail -50 /var/www/html/wp-content/debug.log
# System log
tail -50 /var/log/syslogÇözüm 4: Eklentileri ve Temaları Devre Dışı Bırakın (WordPress / CMS)
Hatalı eklentiyi belirledikten sonra güncelleyin, bir alternatifle değiştirin veya eklenti geliştiricisiyle iletişime geçin. Ayrıca PHP sürümünüzün uyumlu olup olmadığını kontrol edin — bazı eklentiler sunucu PHP'yi güncellediğinde çalışmayı durdurur.
# Disable all plugins by renaming the plugins folder
cd /var/www/html/wp-content
mv plugins plugins_disabled
# If the site loads, rename it back and re-enable plugins one by one
mv plugins_disabled plugins
# To disable a single plugin
mv plugins/problem-plugin plugins/problem-plugin.disabledÇözüm 5: PHP ve Sunucu Sınırlarını Artırın
Sunucunuzda PHP işçileri tükeniyorsa veya bellek sınırlarına ulaşıyorsa, yapılandırmadaki sınırları artırmanız gerekir.
# PHP-FPM pool config (e.g., /etc/php/8.2/fpm/pool.d/www.conf)
pm = dynamic
pm.max_children = 50 # Increase from default (5-10)
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20
pm.max_requests = 500
# PHP memory limit (php.ini)
memory_limit = 256M # Increase from default 128M
max_execution_time = 300 # Increase from default 30
# Restart PHP-FPM after changes
sudo systemctl restart php8.2-fpmÇözüm 6: DNS ve CDN Yapılandırmasını Kontrol Edin
Teşhis için DNS Robot'un DNS Lookup aracını kullanarak alan adınızın doğru IP'ye yönlendirildiğini doğrulayın. DNS Robot'un HTTP Headers aracını kullanarak sunucunun hangi durum kodunu döndürdüğünü kontrol edin. DNS, Cloudflare'e yönlendiriyorsa ancak kaynak IP'niz değiştiyse, Cloudflare panelindeki A kaydını güncelleyin.
Cloudflare markalı 503: Hata sayfasında Cloudflare logosu var — bu, Cloudflare'in veri merkezinde bir sorun olduğu anlamına gelir (nadir).
Cloudflare üzerinden kaynak 503: Hata sayfası düz veya sitenizin tasarımına sahip — bu, kaynak sunucunuzun 503 döndürdüğü ve Cloudflare'in bunu ilettiği anlamına gelir.
Çözüm 7: DDoS veya Bot Saldırılarını Kontrol Edin
Tek bir IP'den veya küçük bir IP aralığından binlerce istek görüyorsanız, bunları güvenlik duvarı seviyesinde engelleyin. Büyük ölçekli DDoS saldırıları için Cloudflare'in "Under Attack Mode" özelliğini etkinleştirin veya barındırma sağlayıcınızın DDoS koruma araçlarını kullanın. Saldıran IP'lerin bilinen kara listelerde olup olmadığını kontrol etmek için DNS Robot'un IP Blacklist Checker aracını kullanabilirsiniz.
# Count requests per IP in the last 1000 lines
tail -1000 /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20
# Check requests per second
awk '{print $4}' /var/log/nginx/access.log | cut -d: -f1-3 | uniq -c | sort -rn | head -10
# Block an abusive IP with iptables
sudo iptables -A INPUT -s 1.2.3.4 -j DROP
# Or block with Nginx
# Add to server block: deny 1.2.3.4;Çözüm 8: Veritabanı Bağlantı Sorunlarını Düzeltin
Çok sayıda uyuyan bağlantı görüyorsanız, uygulamanız veritabanı bağlantılarını düzgün kapatmıyor demektir. Uzun süren sorgular diğerlerini engelliyorsa, bu sorguları optimize edin veya veritabanının engelini kaldırmak için sonlandırın.
# Check if MySQL/MariaDB is running
sudo systemctl status mysql
# Restart MySQL
sudo systemctl restart mysql
# Check current connections vs limit
mysql -e "SHOW STATUS LIKE 'Threads_connected';"
mysql -e "SHOW VARIABLES LIKE 'max_connections';"
# Increase max connections (temporary)
mysql -e "SET GLOBAL max_connections = 200;"
# Check for long-running queries
mysql -e "SHOW PROCESSLIST;" | head -20Çözüm 9: Barındırma Sağlayıcınızla İletişime Geçin
Paylaşımlı barındırma, yönetilen WordPress barındırma veya Squarespace, Wix ya da Shopify gibi bir platform kullanıyorsanız, sunucu günlüklerine erişiminiz veya hizmetleri yeniden başlatma yetkiniz olmayabilir. Bu durumlarda 503 hatası, barındırma sağlayıcısının altyapısından kaynaklanıyor olabilir.
Barındırma sağlayıcınızın desteğiyle iletişime geçin ve şunları belirtin:
503 döndüren tam URL
Hatanın ne zaman başladığı — tarih ve saati not edin
Neyin değiştiği — bir eklenti yüklediniz mi, tema güncellediniz mi veya DNS ayarlarını değiştirdiniz mi?
Hatanın aralıklı mı yoksa sürekli mi olduğu — aralıklı 503 hataları kaynak sınırlarına işaret eder; sürekli 503 hataları çökme veya yapılandırma hatasına işaret eder
503 ile Diğer HTTP Hatalarının Karşılaştırması
Temel fark: 503 açıkça geçicidir. İyi yapılandırılmış bir 503 yanıtı, istemcilere tam olarak ne zaman geri dönmeleri gerektiğini söyleyen bir Retry-After başlığı içerir. Google, 503'ü 500'den farklı ele alır — kesinti kısa sürerse tekrar deneyecek ve sıralamalarınızı koruyacaktır.
| Hata Kodu | Adı | Anlamı | Geçici mi? |
|---|---|---|---|
| 500 | Internal Server Error | Sunucu beklenmeyen bir hatayla karşılaştı (bug, çökme, yapılandırma hatası) | Belki |
| 502 | Bad Gateway | Bir proxy/yük dengeleyici, yukarı akış sunucusundan geçersiz bir yanıt aldı | Belki |
| 503 | Service Unavailable | Sunucu çalışıyor ancak istekleri geçici olarak işleyemiyor (aşırı yükleme, bakım) | Evet |
| 504 | Gateway Timeout | Bir proxy/yük dengeleyici, yukarı akış sunucusundan zamanında yanıt alamadı | Belki |
| 520-530 | Cloudflare Hataları | Kaynak bağlantı sorunları için Cloudflare'e özgü hatalar | Değişir |
503 Hatalarını Nasıl Önlersiniz
Önlem almak, yangınla mücadeleden iyidir. İşte 503 hatalarından kaçınmak için en iyi uygulamalar.
Sunucu kaynaklarını izleyin — CPU > %80, RAM > %85 ve disk > %90 için uyarılar kurun. UptimeRobot, Pingdom veya Grafana gibi araçlar anında bildirim sağlar.
CDN kullanın — Cloudflare, Fastly veya AWS CloudFront statik kaynakları önbelleğe alır ve trafik artışlarını karşılar, böylece kaynak sunucunuzdaki yükü azaltır.
Önbelleğe almayı etkinleştirin — Veritabanı sorgularını ve işlenmiş sayfaları önbelleğe almak için Redis, Memcached veya Varnish kullanın. WordPress kullanıcıları: WP Super Cache veya W3 Total Cache gibi bir önbellek eklentisi yükleyin.
Otomatik ölçeklendirme — Bulut barındırma (AWS, GCP, Azure, DigitalOcean) kullanıyorsanız, trafik artışlarında otomatik olarak daha fazla sunucu eklemek için otomatik ölçeklendirme yapılandırın.
Botları sınırlayın — Agresif tarayıcıları ve kazıyıcıları sunucunuzu aşırı yüklemeden önce hız sınırlamak için Nginx veya Cloudflare'i yapılandırın.
Veritabanı sorgularını optimize edin — Yavaş sorgular, veritabanıyla ilgili 503 hatalarının 1 numaralı nedenidir. Dizinler ekleyin, birleştirmeleri optimize edin ve sorgu önbelleği kullanın.
Uygun bir bakım sayfası kullanın — Dağıtımlar sırasında sunucunun çökmesine izin vermek yerine
Retry-Afterbaşlığıyla 503 döndürün. Bu, SEO'yu korur ve kullanıcıları bilgilendirir.Yazılımı güncel tutun — Bilinen hataları ve güvenlik açıklarını önlemek için CMS, eklentiler, PHP ve veritabanını en son kararlı sürümlere güncelleyin.
Bir web sitesinin 503 döndürüp döndürmediğini kontrol edin
DNS Robot'un ücretsiz HTTP Headers aracını kullanarak herhangi bir web sitesinin HTTP yanıt kodunu, başlıklarını ve sunucu bilgilerini kontrol edin. Bir sitenin 503 Service Unavailable döndürüp döndürmediğini anında görün.
Try HTTP Headers CheckerFrequently Asked Questions
HTTP 503 hatası (Service Unavailable), web sunucusunun isteğinizi geçici olarak işleyemediği anlamına gelir. Sunucu erişilebilir ancak aşırı yüklenmiş, bakımda veya arka uç uygulaması çökmüştür. Bu geçici bir durumdur — site kendi kendine tekrar açılmalıdır.