# Nginx 502 Bad Gateway hatası: nedenleri ve çözümü

https://kervanhosting.com/bilgi-bankasi/makale/nginx-502-bad-gateway-hatasi-nedenleri-ve-cozumu

502 Bad Gateway, Nginx'in arkasındaki programa (PHP-FPM, Node.js uygulaması, Python servisi) ulaşamadığını ya da bozuk bir yanıt aldığını söyler. Yani sorun Nginx'te değil, ya arkadaki servisin kapalı olmasında ya da Nginx'in ona yanlış yoldan gitmesindedir. Cevabı günlük dosyası verir; tahmin etmeyin, önce okuyun.

## 1. Günlüğe bakın

```
sudo tail -n 30 /var/log/nginx/error.log
```

Hataya yakın satırlar sebebi açıkça yazar. En sık karşılaşılanlar:

- `connect() to unix:/run/php/php8.3-fpm.sock failed (2: No such file or directory)`
PHP-FPM çalışmıyor ya da soket yolu yanlış.
- `connect() failed (111: Connection refused) while connecting to upstream`
Arkadaki uygulama o portta dinlemiyor (kapanmış ya da başka portta).
- `connect() to unix:... failed (13: Permission denied)`
Soket dosyasının izinleri Nginx kullanıcısına (`www-data`) izin vermiyor.
- `upstream prematurely closed connection`
Arkadaki program yanıt verirken çöktü; kendi günlüğüne bakın.

## 2. PHP siteleri için PHP-FPM kontrolü

```
sudo systemctl status php8.3-fpm
ls /run/php/
```

Servis çalışmıyorsa `sudo systemctl restart php8.3-fpm` ile başlatın. `ls` çıktısındaki soket adı ile Nginx ayarınızdaki `fastcgi_pass` satırı **birebir aynı** olmalı. PHP sürümünü yükselttiyseniz (8.1'den 8.3'e gibi) soketin adı da değişir ve Nginx eski adı aramaya devam eder:

```
sudo grep -r fastcgi_pass /etc/nginx/
sudo nginx -t
sudo systemctl reload nginx
```

PHP-FPM'in kendi günlüğünde `server reached pm.max_children setting` görüyorsanız çalışan işlem sayısı sınırı dolmuştur; sınır değerini `/etc/php/8.3/fpm/pool.d/www.conf` içinde yükseltin, ama bellek yettiğinden emin olun.

## 3. Node.js, Python gibi uygulamalar için

```
sudo ss -tlnp | grep 3000
grep proxy_pass /etc/nginx/sites-enabled/*
```

Uygulamanın dinlediği port, `proxy_pass` satırındaki portla aynı olmalı. Uygulama kapanmışsa nedenini öğrenmek için servis günlüğüne bakın (`journalctl -u uygulamam -n 50`). Uygulamanızı sunucu açılışında otomatik başlatıp çökünce yeniden başlatacak şekilde ayarlamak için [arka planda çalıştırma](https://kervanhosting.com/bilgi-bankasi/makale/bir-programi-arka-planda-surekli-calistirma-screen) makalesine bakın.

## 4. 502 değil 504 ise

504 Gateway Timeout, arkadaki programın yanıt verdiği ama çok yavaş kaldığı anlamına gelir. Uzun süren işlemlerde Nginx ayarlarında `fastcgi_read_timeout 120;` (PHP) ya da `proxy_read_timeout 120;` (proxy) değerini artırabilirsiniz. Asıl çözüm yavaş sorguyu ya da işlemi bulmaktır.

## Bellek yetmiyor olabilir

PHP-FPM ya da uygulama bir anda ölüyorsa sunucunun belleği dolmuş ve çekirdek süreci öldürmüş olabilir. Doğrulamak için: `sudo dmesg | grep -i "out of memory"`. Çözüm [swap eklemek](https://kervanhosting.com/bilgi-bankasi/makale/linux-sunucuya-swap-takas-alani-nasil-eklenir) ya da [paketi büyütmektir](https://kervanhosting.com/bilgi-bankasi/makale/vps-paketimi-buyutmek-daha-fazla-ram-islemci-disk-istiyorum). Sunucu seçenekleri: [Linux VDS](https://kervanhosting.com/linux-vds).

## Sık sorulanlar

### 502 hatası bir anda geldi, hiçbir şey değiştirmedim, neden?

Çoğu zaman otomatik güvenlik güncellemesi PHP-FPM'i yeniden başlatırken ya da sürümünü yükseltirken olur. Servis ayağa kalkmamış ya da soket adı değişmiş olabilir. Günlükteki ilk satıra bakın.

### Nginx'i yeniden başlatmak çözer mi?

Sadece Nginx'in kendi sorunu varsa. 502'nin sebebi arkadaki servis olduğu için asıl yeniden başlatılması gereken PHP-FPM ya da uygulamanızdır.

### 502'yi sadece bazı sayfalarda görüyorum.

Belirli bir sayfa ağır bir sorgu çalıştırıp işlemi çökertiyor olabilir. Uygulamanızın kendi hata günlüğüne ve PHP-FPM günlüğüne (`/var/log/php8.3-fpm.log`) bakın.

**İlgili makaleler**

- [Linux sunucuya web sitesi (Nginx) nasıl kurulur?](https://kervanhosting.com/bilgi-bankasi/makale/linux-sunucuya-web-sitesi-nginx-nasil-kurulur)
- [Sitem açılmıyor, adım adım kontrol listesi](https://kervanhosting.com/bilgi-bankasi/makale/sitem-acilmiyor-adim-adim-kontrol-listesi)
- [Yüksek işlemci (CPU) veya bellek (RAM) kullanımı nasıl çözülür?](https://kervanhosting.com/bilgi-bankasi/makale/yuksek-islemci-cpu-veya-bellek-ram-kullanimi-nasil-cozulur)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
