Arama Yap Mesaj Gönder
Biz Sizi Arayalım
+90
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro
X

Lütfen Ülke (Bölge) Seçiniz

Türkiye (Türkçe)Türkiye (Türkçe) Almanya (German)Almanya (German) Worldwide (English)Worldwide (English)
X

Lütfen Para Birimi Seçiniz

Türk Lirası $ US Dollar Euro

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR
NGINX Teknik Rehberi

NGINX 502 Bad Gateway Hatası Nasıl Çözülür?

502 Bad Gateway, NGINX’in istemci isteğini aldığı ancak PHP-FPM, Node.js, Python, Docker veya başka bir upstream servisten geçerli yanıt alamadığı anlamına gelir. Bu rehber servis, port, Unix socket, proxy_pass, izin ve güvenlik katmanlarını doğru sırayla ayırır.

502 Bad GatewayPHP-FPMproxy_passUnix SocketUpstream
root@sunucu:~SSH
2026/07/17 03:14:28 [error] 2187#2187: *904 connect() to unix:/run/php/php8.3-fpm.sock failed (2: No such file or directory) while connecting to upstream
2026/07/17 03:14:28 [error] 2187#2187: *904 connect() failed (111: Connection refused) while connecting to upstream
İstek akışıİstemci, NGINX ve backend arasındaki kopma noktası
YapılandırmaEtkin server ve location bloklarının doğrulanması
Canlı teşhisLog, socket, port ve servis kontrolleri
Güvenli uygulamaTest, kontrollü reload ve sonuç doğrulaması
01
Teknik açıklama

NGINX 502 Bad Gateway ne anlama gelir?

NGINX ön tarafta çalışırken arkadaki uygulama servisine bağlanamadığında veya backend geçersiz/yarım yanıt verdiğinde 502 üretir. Bu nedenle yalnız NGINX’i yeniden başlatmak çoğu vakada kalıcı çözüm değildir.

İlk ayrım, hatanın tek bir domainde mi yoksa NGINX arkasındaki tüm uygulamalarda mı görüldüğüdür. Tek domain genellikle vhost, socket veya uygulama servisine; tüm domainler ortak PHP-FPM, NGINX, ağ ya da kaynak sorununa işaret eder.

Unix socket kullanılan PHP-FPM yapılandırmalarında socket dosyasının yolu, sahibi ve izinleri fastcgi_pass satırıyla birebir eşleşmelidir. PHP sürümü değiştiğinde eski socket yolunun vhost dosyasında kalması sık görülen bir nedendir.

TCP upstream kullanılıyorsa hedef IP ve portun gerçekten dinlenmesi gerekir. Container, Node.js veya Python servisi yeniden başladıktan sonra port değişmiş, servis yalnız localhost yerine farklı arayüze bağlanmış veya firewall bağlantıyı engelliyor olabilir.

Cloudflare ekranındaki 502 ile origin NGINX’in ürettiği 502 aynı değildir. Önce origin IP’ye ve localhost backend’e doğrudan istek göndererek hatanın hangi katmanda başladığı belirlenmelidir.

502’de timeout değerlerini yükseltmeden önce backend’in ayakta, doğru portta ve NGINX worker kullanıcısı tarafından erişilebilir olduğu kanıtlanmalıdır.

02
Log mesajları ve anlamları

502 Bad Gateway ve upstream bağlantı hata mesajları

E-postada, tarayıcıda veya SSH günlüğünde gördüğünüz ifadeyi aratın. Her kartta anlam, muhtemel neden ve güvenli ilk işlem bulunur.

8 kayıt
01kritik

connect() failed (111: Connection refused) while connecting to upstream

Anlamı: Hedef IP ve port bağlantıyı kabul etmiyor.

Muhtemel neden: Backend kapalı, yanlış port veya servis yalnız farklı arayüzde dinliyor.

ss -lntp ile hedef portu ve ilgili servisin durumunu kontrol edin.
02kritik

connect() to unix socket failed (2: No such file or directory)

Anlamı: NGINX’in kullandığı socket yolu mevcut değil.

Muhtemel neden: PHP-FPM sürümü, pool adı veya socket yolu değişmiş.

PHP-FPM pool dosyasındaki listen değeriyle fastcgi_pass satırını karşılaştırın.
03kritik

connect() to unix socket failed (13: Permission denied)

Anlamı: Socket mevcut fakat NGINX worker erişemiyor.

Muhtemel neden: Socket sahibi, grup, mod veya SELinux context uyumsuz.

Socket izinlerini ve NGINX/PHP-FPM kullanıcı gruplarını inceleyin.
04kritik

no live upstreams while connecting to upstream

Anlamı: Upstream grubunda kullanılabilir backend kalmamış.

Muhtemel neden: Tüm sunucular başarısız işaretlenmiş veya DNS/health durumu bozuk.

Upstream üyelerini doğrudan curl ile test edin ve error_log zamanlarını karşılaştırın.
05uyari

upstream prematurely closed connection

Anlamı: Backend yanıt tamamlanmadan bağlantıyı kapattı.

Muhtemel neden: Uygulama crash, process kill, bellek tükenmesi veya protokol uyumsuzluğu.

Backend uygulama ve OOM loglarını aynı saniyede kontrol edin.
06uyari

recv() failed (104: Connection reset by peer)

Anlamı: Karşı taraf bağlantıyı zorla sıfırladı.

Muhtemel neden: Backend restart, uygulama hatası veya ağ güvenlik katmanı.

Backend servisinin restart sayısını ve uygulama logunu inceleyin.
07uyari

upstream sent invalid header

Anlamı: Backend HTTP/FastCGI protokolüne uygun başlık üretmedi.

Muhtemel neden: Yanlış proxy protokolü, bozuk uygulama çıktısı veya FastCGI portuna HTTP gönderimi.

proxy_pass ile fastcgi_pass seçiminin backend türüne uygun olduğunu doğrulayın.
08bilgi

502 Bad Gateway nginx

Anlamı: Tarayıcıdaki genel hata kök nedeni gizler.

Muhtemel neden: Servis, socket, port, izin veya uygulama katmanı.

Domain error_log içindeki aynı request ID/zamanlı ilk upstream satırını bulun.

Bu ifadeyle eşleşen kayıt bulunamadı.

03
Güvenli ilk inceleme

SSH teşhis komutları ve hangi çıktıya bakılmalı?

Komutlar root erişimi içindir. Önce yalnızca durum ve log toplayın; nedeni görmeden kalıcı ayar değiştirmeyin.

NGINX yapılandırma testi
nginx -t
nginx -T | grep -nE 'server_name|proxy_pass|fastcgi_pass'

Sözdizimini test eder ve etkin upstream hedeflerini gösterir.

Servis ve port kontrolü
systemctl status nginx php8.3-fpm --no-pager
ss -lntp
ss -lxnp | grep -E 'php|fpm'

NGINX, PHP-FPM, TCP portları ve Unix socketleri doğrular.

Hata günlükleri
tail -n 150 /var/log/nginx/error.log
journalctl -u nginx -u php8.3-fpm -n 150 --no-pager

NGINX ve backend servis hatalarını aynı zaman aralığında karşılaştırır.

Backend doğrudan testi
curl -sv http://127.0.0.1:3000/ -o /dev/null
curl -skI https://example.com/

Reverse proxy arkasındaki servisi NGINX’ten bağımsız test eder.

Socket izin kontrolü
namei -l /run/php/php8.3-fpm.sock
stat /run/php/php8.3-fpm.sock
ps -eo user,group,cmd | grep '[n]ginx: worker'

Socket yolundaki tüm klasörlerin ve worker kullanıcısının erişimini gösterir.

Güvenli yeniden yükleme
nginx -t && systemctl reload nginx
systemctl restart php8.3-fpm

NGINX’i kesintisiz yükler; yalnız backend gerektiğinde yeniden başlatılır.

04
Barındırma ortamına göre

Ubuntu/Debian, AlmaLinux/CloudLinux ve Plesk kontrolleri

NGINX hatasının temel nedeni aynı olsa da paket yolları, servis adları, güvenlik katmanları ve sanal host yönetimi kullanılan Linux dağıtımına veya Plesk altyapısına göre değişir.

Ubuntu / Debian

NGINX 502 Bad Gateway için systemd, paket yolu ve journald kontrolleri.

  • Önce etkin NGINX yapılandırmasını ve servis durumunu doğrulayın.
  • Domain error logu ile systemd günlüğünü aynı zaman aralığında karşılaştırın.
  • Değişiklikten önce nginx -t, ardından kesintisiz reload uygulayın.
systemctl status nginx php8.3-fpm --no-pager nginx -t tail -n 100 /var/log/nginx/error.log

AlmaLinux / CloudLinux

NGINX 502 Bad Gateway için SELinux, PHP-FPM pool ve RHEL tabanlı servis kontrolleri.

  • NGINX ve ilgili backend servislerinin aktif durumunu kontrol edin.
  • SELinux AVC kayıtlarını ve güvenlik katmanlarını gözden geçirin.
  • Konfigürasyon testi geçmeden servisi yeniden başlatmayın.
systemctl status nginx php-fpm --no-pager nginx -t tail -n 100 /var/log/nginx/error.log

Plesk Obsidian

Plesk tarafından üretilen NGINX sanal host dosyalarında nginx 502 bad gateway kontrolü.

  • Domains > Apache & nginx Settings bölümündeki ek direktifleri inceleyin.
  • Elle oluşturulan ve Plesk tarafından üretilen dosyaları birbirinden ayırın.
  • Gerekirse yalnız ilgili domain için web yapılandırmasını yeniden oluşturun.
plesk repair web example.com -y systemctl status nginx sw-engine --no-pager nginx -t
05
Güvenli çözüm sırası

NGINX 502 Bad Gateway güvenli çözüm sırası

Servisi rastgele yeniden başlatmak yerine hatanın NGINX, socket, backend veya güvenlik katmanında oluştuğunu kanıtlayarak ilerleyin.

1

Etkilenen kapsamı belirleyin

Tek domain, tek PHP sürümü veya tüm upstream uygulamalar mı etkileniyor ayırın.

for u in https://example.com https://diger.example.com; do curl -sk -o /dev/null -w "$u %{http_code}\n" "$u"; done
2

Aynı zamandaki error_log satırını bulun

Tarayıcı mesajına değil, upstream hata satırına göre kök nedeni sınıflandırın.

tail -f /var/log/nginx/error.log
3

Backend servisinin dinlediğini doğrulayın

Socket veya TCP port hedefinin gerçekten açık olduğunu kanıtlayın.

ss -lntp; ss -lxnp | grep -E 'php|fpm'
4

Vhost hedefini servis ayarıyla karşılaştırın

fastcgi_pass veya proxy_pass değerini gerçek listen adresiyle eşleştirin.

nginx -T | grep -nE 'fastcgi_pass|proxy_pass'
5

İzin ve güvenlik katmanını kontrol edin

Socket erişimi, SELinux ve firewall bloklarını inceleyin.

namei -l /run/php/php8.3-fpm.sock; getenforce 2>/dev/null
6

Test edip kontrollü reload uygulayın

Sözdizimi başarılıysa reload edin ve hem origin hem backend’i tekrar ölçün.

nginx -t && systemctl reload nginx curl -skI https://example.com/
06
Belirtiye göre ayrım

Özel senaryolar ve karar ağacı

PHP güncellemesinden sonra başladı

Eski PHP-FPM socket yolu vhost dosyasında kalmış olabilir.

grep -R 'fastcgi_pass' /etc/nginx /etc/plesk 2>/dev/null
Docker deploy sonrası oluştu

Container portu, network adı veya health durumu değişmiş olabilir.

docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Ports}}'
Node.js uygulamasında 502

PM2/systemd process durmuş veya uygulama yalnız farklı porta bağlanmış olabilir.

systemctl status uygulama --no-pager; ss -lntp
Permission denied görülüyor

Socket group/mode veya SELinux context uyumsuzluğunu inceleyin.

stat /run/php/php8.3-fpm.sock; ausearch -m AVC -ts recent | tail
Yalnız Cloudflare üzerinden 502

Origin’e doğrudan erişim ile Cloudflare katmanını ayırın.

curl -skI --resolve example.com:443:ORIGIN_IP https://example.com/
Plesk’te tek domain etkileniyor

Domainin üretilen NGINX/PHP handler yapılandırmasını yeniden oluşturun.

plesk repair web example.com -y

Kesinlikle yapmayın

  • Error log görmeden tüm servisleri aynı anda yeniden başlatmayın.
  • Socket izin sorununu 777 vererek çözmeye çalışmayın.
  • PHP-FPM socket yerine rastgele bir port yazmayın.
  • Backend çökerken yalnız proxy timeout değerlerini yükseltmeyin.
  • Plesk tarafından üretilen ana vhost dosyasını doğrudan kalıcı biçimde düzenlemeyin.

Çözüm sonrası doğrulama

  • NGINX yapılandırma testi başarılıdır.
  • Backend socket veya TCP portu kararlı şekilde dinlemektedir.
  • Origin URL beklenen 2xx/3xx HTTP kodunu döndürmektedir.
  • Yeni error_log kayıtlarında connection refused veya permission denied yoktur.
  • Servisler kısa aralıklarla yeniden başlamamakta ve OOM kaydı üretmemektedir.
07
Resmî teknik kaynaklar

NGINX ve ilgili bileşenlerin resmî dokümantasyonu

08
İç SEO içerik kümesi

İlgili NGINX hata çözümleri

09
Sık sorulan sorular

NGINX 502 Bad Gateway hakkında merak edilenler

NGINX 502 Bad Gateway neden olur?

En sık neden NGINX’in PHP-FPM veya reverse proxy backend’ine bağlanamamasıdır. Yanlış socket/port, durmuş servis, izin sorunu ve uygulamanın bağlantıyı erken kapatması başlıca nedenlerdir.

NGINX’i yeniden başlatmak 502’yi çözer mi?

Yalnız NGINX process sorunu varsa çözebilir. Backend kapalı veya fastcgi_pass yanlışsa yeniden başlatma geçici ya da etkisiz olur.

502 ile 504 arasındaki fark nedir?

502 genellikle bağlantı kurulamadığını veya geçersiz backend yanıtını; 504 ise bağlantı kurulmasına rağmen zamanında yanıt alınamadığını gösterir.

PHP-FPM socket yolunu nasıl bulurum?

PHP-FPM pool dosyalarındaki listen değerini ve ss -lxnp çıktısını kontrol edin. Bu değer NGINX fastcgi_pass satırıyla eşleşmelidir.

Connection refused ne demektir?

Hedef IP/port üzerinde bağlantıyı kabul eden servis olmadığını veya aktif reddedildiğini gösterir. Servis, port ve bind adresi kontrol edilmelidir.

Plesk’te 502 için hangi işlem güvenlidir?

Önce domain loglarını ve handler ayarını kontrol edin; ardından gerekirse plesk repair web alanadi -y ile yalnız ilgili domainin web yapılandırmasını yeniden oluşturun.

Cloudflare 502 hatası origin kaynaklı mı?

Her zaman değil. Origin IP’ye --resolve ile doğrudan istek göndererek Cloudflare ile origin NGINX katmanlarını ayırabilirsiniz.

EKA YAZILIM VE BİLİŞİM SİSTEMLERİ

Sunucunuzdaki hatayı kalıcı olarak çözelim

cPanel, WHM, CloudLinux, LiteSpeed, MariaDB, Exim ve güvenlik katmanlarını birlikte analiz ederek yalnızca servisi kaldırmak yerine arızanın temel nedenini gideriyoruz.

Sunucu Desteği Al WhatsApp
Top