1. Nginx 502 Bad Gateway Hatası Nedir?
Öncelikle 502 Bad Gateway hatasının ne olduğunu kısaca açıklayayım. Nginx, bir ters proxy sunucusu olarak çalışır, yani gelen istekleri başka bir sunucuya iletir ve yanıtları kullanıcılara geri gönderir. Eğer arka uç sunucusundan (backend server) bir hata alırsa, 502 Bad Gateway hatası oluşur. Bu hata, genellikle sunucuya iletilen isteklerin doğru bir şekilde işlenemediğini gösterir.
2. Sunucu Durumunu Kontrol Edin
İlk adımda yapmanız gereken şey, sunucunuzun gerçekten çalışıp çalışmadığını kontrol etmektir. Nginx, bazen arka plandaki hizmetin çökmüş olmasından dolayı 502 hatası verebilir.
Bir terminal açın ve şu komutu girin:
systemctl status nginxBu komut, Nginx'in çalışıp çalışmadığını kontrol etmenizi sağlar. Eğer durduysa, şu komutla tekrar başlatabilirsiniz:
systemctl start nginx3. Nginx ve PHP-FPM'yi Yeniden Başlatın
Bazen Nginx, PHP-FPM ile iletişim kuramadığı için 502 hatası verebilir. Bu durumda, PHP-FPM servisinin düzgün çalışıp çalışmadığını kontrol etmeniz gerekir. PHP-FPM'nin durması, 502 hatasının en yaygın nedenlerinden biridir.
PHP-FPM'nin durumunu kontrol etmek için şu komutu kullanabilirsiniz:
systemctl status php7.x-fpmPHP-FPM'yi yeniden başlatmak için:
systemctl restart php7.x-fpm4. Nginx Konfigürasyon Dosyasını Kontrol Edin
Nginx'in yapılandırma dosyasındaki hatalar, 502 Bad Gateway hatasına yol açabilir. Nginx'in doğru çalışabilmesi için konfigürasyon dosyasını dikkatlice gözden geçirin.
Konfigürasyon dosyasını şu komutla açabilirsiniz:
nano /etc/nginx/nginx.confEğer konfigürasyon dosyasındaki bir hata varsa, düzeltin ve ardından Nginx'i yeniden başlatın:
systemctl restart nginx5. Web Sunucusu Yükünü Kontrol Edin
Bazen Nginx, sunucu kaynaklarının aşırı yüklenmesi nedeniyle 502 hatası verebilir. Bu durumda, sunucu yükünü kontrol etmeniz önemlidir. CPU, bellek ve disk kullanımını izlemek için şu komutları kullanabilirsiniz:
CPU kullanımı:
topDisk kullanımı:
df -hBellek kullanımı:
free -hEğer sunucu kaynakları aşırı kullanılıyorsa, sunucunuzu optimize etmeniz gerekebilir.
6. Arka Uç Sunucusunu Kontrol Edin
Nginx, genellikle Apache, PHP-FPM veya diğer uygulama sunucuları ile etkileşimde bulunur. Eğer bu sunucularda bir hata meydana gelirse, 502 hatası alabilirsiniz. Arka uç sunucusunun düzgün çalışıp çalışmadığını kontrol edin ve gerekli yapılandırma ayarlarını yapın.
Eğer Apache kullanıyorsanız, şu komutla Apache'nin durumunu kontrol edebilirsiniz:
systemctl status apache2Apache'yi yeniden başlatmak için:
systemctl restart apache27. Hata Günlüklerini İnceleyin
Nginx ve PHP-FPM günlükleri, hatanın nedenini bulmada size yardımcı olabilir. Nginx günlüklerini şu komutla kontrol edebilirsiniz:
tail -f /var/log/nginx/error.logPHP-FPM günlükleri içinse:
tail -f /var/log/php7.x-fpm.logBu günlüklerdeki hata mesajları, problemi anlamanızı sağlayacak değerli ipuçları verecektir.
8. Proxy Ayarlarını Gözden Geçirin
Eğer Nginx bir ters proxy olarak yapılandırıldıysa, proxy ayarlarını doğru şekilde yapılandırmanız gerekmektedir. Yanlış proxy ayarları da 502 hatasına yol açabilir. Aşağıdaki gibi bir ayar yapmanız faydalı olabilir:
location / {
proxy_pass http://backend-server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}Önemli Not: Her zaman yapılandırma değişikliklerinizi kaydedin ve ardından Nginx'i yeniden başlatın.
9. Sunucu Kaynaklarını Yükseltin
Eğer tüm bu adımlar sorunu çözmediyse, belki de sunucunuz yetersiz kalıyordur. Sunucu kaynaklarınızı yükseltmek (daha fazla CPU, RAM veya daha hızlı bir disk) bu tür hataları engelleyebilir.
Sonuç
Nginx 502 Bad Gateway hatası, karmaşık görünebilir ancak doğru adımlarla çözülmesi oldukça basittir. Sunucu kaynaklarınızı kontrol edin, Nginx ve PHP-FPM servislerini gözden geçirin, proxy ayarlarını doğru yapın ve günlükleri inceleyin. Unutmayın, sabırlı olun ve her adımı dikkatlice takip edin. Sonuçta, kullanıcılarınızın rahatça web sitenize erişmesini sağlayarak, kesintisiz bir deneyim sunabilirsiniz.