PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Linux Sunucuda 502 Bad Gateway ve 504 Gateway Timeout Hatası Çözümü

Yazdır

Linux Sunucuda 502 Bad Gateway ve 504 Gateway Timeout Hatası Çözümü

Nginx, Apache, PHP-FPM ve servis timeout problemlerini adım adım çözme rehberi.

Web sitelerinde görülen 502 Bad Gateway ve 504 Gateway Timeout hataları, genellikle web sunucusunun arka taraftaki servisten doğru yanıt alamaması nedeniyle oluşur. Bu servis PHP-FPM, Apache backend, Node.js uygulaması, oyun paneli API servisi veya proxy arkasındaki başka bir uygulama olabilir.

Bu hatalar özellikle hosting, oyun paneli, WHMCS, Pterodactyl, özel yönetim paneli ve web tabanlı launcher sistemlerinde sık görülür.

Basit anlatım: Nginx kapıdaki görevli gibidir. İçerideki PHP veya uygulama cevap vermezse kullanıcıya 502 veya 504 hatası gösterir.

1. 502 ve 504 Hatası Arasındaki Fark

  • 502 Bad Gateway: Web sunucusu backend servise bağlanamıyor veya bozuk cevap alıyor.
  • 504 Gateway Timeout: Backend servis cevap veriyor gibi görünüyor ama zamanında yanıt dönmüyor.

Yani 502 daha çok bağlantı/servis çökmesi, 504 ise yavaşlık veya timeout problemidir.

2. Servis Durumlarını Kontrol Etme

İlk olarak web sunucusu ve PHP servislerinin çalışıp çalışmadığını kontrol edin.

systemctl status nginx
systemctl status apache2
systemctl status php-fpm

CentOS, AlmaLinux veya Rocky Linux sistemlerde PHP-FPM servisi şu isimle olabilir:

systemctl status php-fpm
systemctl status httpd

Eğer servis durmuşsa yeniden başlatın:

systemctl restart nginx
systemctl restart php-fpm

3. Log Dosyalarını İnceleme

502 ve 504 hatalarında tahminle ilerlemek doğru değildir. Log dosyası hatanın gerçek sebebini gösterir.

tail -n 100 /var/log/nginx/error.log
tail -n 100 /var/log/apache2/error.log

CentOS tabanlı sistemlerde:

tail -n 100 /var/log/httpd/error_log

Loglarda şu ifadeler görülebilir:

  • connect() failed: Backend servise bağlanılamıyor.
  • upstream timed out: Backend servis geç cevap veriyor.
  • connection refused: Servis kapalı veya yanlış porta yönlendirme var.
  • permission denied: Socket veya dosya izin problemi var.

4. PHP-FPM Socket veya Port Kontrolü

Nginx, PHP-FPM'e socket veya port üzerinden bağlanır. Nginx config dosyasındaki PHP-FPM yolu ile gerçek PHP-FPM listen değeri aynı olmalıdır.

grep -R "fastcgi_pass" /etc/nginx/sites-enabled/
grep -R "listen =" /etc/php/*/fpm/pool.d/www.conf

Örneğin Nginx şunu kullanıyorsa:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

PHP-FPM tarafında da aynı socket dinlenmelidir:

listen = /run/php/php8.2-fpm.sock
Önemli: PHP sürümü değiştirildiyse Nginx hâlâ eski PHP-FPM socket yoluna bakıyor olabilir. Bu durum 502 hatasının en yaygın sebeplerinden biridir.

5. Timeout Ayarlarını Artırma

Büyük işlem yapan panel, oyun marketi, API veya yavaş çalışan PHP scriptlerinde 504 hatası alınabilir. Nginx timeout değerleri artırılabilir.

nano /etc/nginx/nginx.conf

http bloğu içine veya ilgili server bloğuna şu değerler eklenebilir:

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
fastcgi_read_timeout 300;

Ayarları test edip Nginx'i yeniden başlatın:

nginx -t
systemctl restart nginx

6. PHP-FPM Process Limitlerini Kontrol Etme

Trafik arttığında PHP-FPM işlem limitleri yetersiz kalabilir. Bu durumda istekler sıraya girer ve zaman aşımı oluşur.

nano /etc/php/8.2/fpm/pool.d/www.conf

Örnek ayarlar:

pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

Sunucunun RAM miktarına göre bu değerler ayarlanmalıdır. Çok yüksek değer vermek RAM tüketimini artırır.

Sık Yapılan Hatalar

  • Log dosyasına bakmadan ayar değiştirmek
  • PHP sürümü değiştiği halde Nginx socket yolunu güncellememek
  • Timeout artırıp asıl yavaş sorguyu düzeltmemek
  • PHP-FPM limitlerini RAM hesabı yapmadan yükseltmek
  • Nginx config test etmeden servisi yeniden başlatmak

FAQ

502 hatası her zaman Nginx kaynaklı mıdır?
Hayır. Nginx sadece hatayı gösteren taraftır. Asıl problem PHP-FPM, Apache backend, Node.js uygulaması veya başka bir serviste olabilir.

504 hatasında timeout artırmak kesin çözüm mü?
Her zaman değil. Timeout artırmak geçici rahatlama sağlar. Asıl çözüm yavaş sorgu, yoğun işlem veya performans problemini bulmaktır.

PHP-FPM restart etmek güvenli mi?
Genelde güvenlidir ancak aktif istekler kısa süre etkilenebilir. Yoğun sistemlerde düşük trafik saatleri tercih edilmelidir.

Performans Önerileri

  • PHP-FPM sürüm ve socket yolunu düzenli kontrol edin.
  • Web panel ve API servislerinde yavaş sorgu loglarını inceleyin.
  • RAM yetersizse PHP-FPM max_children değerini bilinçsiz artırmayın.
  • Cache sistemi kullanarak backend yükünü azaltın.
  • Hata loglarını büyümeden logrotate ile yönetin.

Bu makale PvPSunucusu için özel olarak hazırlanmıştır.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner