Nginx 502 Bad Gateway hatası, web yöneticilerinin en sık karşılaştığı ve can sıkıcı hatalardan biridir. Web sitenizi ziyaret eden kullanıcılar, bu hatayı gördüklerinde sayfa yüklenmez ve ziyaretçi deneyimi olumsuz etkilenir. Peki, Nginx 502 Bad Gateway hatası nedir ve nasıl çözülür? İşte size adım adım bir çözüm rehberi!
Nginx 502 Bad Gateway Hatası Nedir?
Nginx, yüksek performanslı bir web sunucusudur ve genellikle trafik yoğunluğu yüksek web siteleri tarafından tercih edilir. Ancak, Nginx’in 502 Bad Gateway hatası vermesi, genellikle başka bir sunucunun yanlış yanıt verdiğini gösterir. Bu hatayı aldığınızda, Nginx'in hedef sunucusundan beklenen yanıtı alamadığını anlayabilirsiniz.
1. Web Sunucusunun Durumunu Kontrol Edin
İlk adım olarak, web sunucusunun çalışıp çalışmadığını kontrol etmelisiniz. Eğer sunucunuz çökmüşse veya yanıt vermiyorsa, Nginx bir "502 Bad Gateway" hatası gösterecektir.
Bunu kontrol etmek için şu komutu kullanabilirsiniz:
sudo systemctl status nginx
Eğer Nginx duruyorsa, şu komutla tekrar başlatabilirsiniz:
sudo systemctl restart nginx
2. PHP-FPM (FastCGI Process Manager) Durumunu Kontrol Edin
Nginx, PHP dosyalarını işlemek için PHP-FPM kullanır. Eğer PHP-FPM çalışmıyorsa, Nginx doğru yanıtı alamaz ve "502 Bad Gateway" hatası ortaya çıkar.
PHP-FPM'in durumunu kontrol etmek için şu komutu kullanabilirsiniz:
sudo systemctl status php7.4-fpm
Eğer PHP-FPM çalışmıyorsa, aşağıdaki komut ile yeniden başlatabilirsiniz:
sudo systemctl restart php7.4-fpm
Not: PHP sürümünüz farklı olabilir, bu nedenle sürüm numarasını doğru şekilde kontrol ettiğinizden emin olun.
3. Nginx ve PHP-FPM Konfigürasyonlarını Kontrol Edin
Nginx ile PHP-FPM arasında bir iletişim hatası, 502 hatasına yol açabilir. Konfigürasyon dosyalarınızı kontrol etmek önemlidir. Özellikle PHP-FPM ile ilgili "fastcgi_pass" satırını doğru yapılandırdığınızdan emin olun.
Nginx konfigürasyon dosyanızı açın:
sudo nano /etc/nginx/sites-available/default
Burada, aşağıdaki satırın doğru olduğunu kontrol edin:
fastcgi_pass 127.0.0.1:9000;
Eğer doğruysa, bu satırı değiştirmenize gerek yok. Ancak, PHP-FPM'in farklı bir soket kullanması durumunda, `127.0.0.1:9000` adresi yerine uygun soket yolunu girmeniz gerekebilir.
4. Sunucu Kaynaklarını Kontrol Edin
Bazen, yüksek trafik veya aşırı CPU/memori kullanımı nedeniyle sunucunuz kaynak sıkıntısı yaşayabilir ve bu da 502 hatasına yol açabilir. Bu durumda sunucunuzun kaynak kullanımını kontrol etmelisiniz.
Linux sunucusunda sistem kaynaklarını görmek için şu komutu kullanabilirsiniz:
top
Eğer sistem kaynakları tıkanmışsa, işlemleri optimize etmeyi veya kaynakları arttırmayı düşünmelisiniz.
5. Logları İnceleyin
Son olarak, Nginx ve PHP-FPM loglarını inceleyerek hatanın kaynağını bulabilirsiniz. Log dosyaları size çok önemli bilgiler sunar.
Nginx loglarını görmek için şu komutu kullanabilirsiniz:
sudo tail -f /var/log/nginx/error.log
PHP-FPM logları içinse şu komutu kullanabilirsiniz:
sudo tail -f /var/log/php7.4-fpm.log
Bu log dosyaları, hatanın ne zaman meydana geldiğini ve nedenini anlamanıza yardımcı olabilir.
6. Firewall ve Proxy Ayarlarını Kontrol Edin
Bazen, güvenlik duvarı veya proxy ayarları Nginx ile diğer sunucular arasındaki iletişimi engelleyebilir. Eğer bir firewall kullanıyorsanız, Nginx’in doğru bağlantıları yapmasına izin verdiğinden emin olun.
---