Hata ile Tanışma
Nginx’i bir Reverse Proxy olarak kullanmaya karar verdiğimde, tüm ayarları dikkatlice yapılandırdım. Ancak, tarayıcımdan siteye erişmeye çalıştığımda “502 Bad Gateway” hatasıyla karşılaştım. Bu hata, sunucunun yanıt vermediği veya geçersiz bir yanıt aldığı anlamına geliyordu. Ne yapacağımı bilemedim. Öncelikle, Nginx’in hata loglarına göz atmaya karar verdim.
Log Dosyalarını İnceleme
Log dosyaları, sistemin kalp atışlarını dinlemek gibidir. Hataları bulmak için bu kayıtlara bakmak şarttır. Aşağıdaki komut ile log dosyalarını kontrol ettim:
tail -f /var/log/nginx/error.logLoglarda, “upstream server temporarily disabled” gibi ifadelerle karşılaştım. Bu, Nginx’in arka uç sunucusuna erişemediği anlamına geliyordu. Sorunun nereden kaynaklandığını anlamak için yapılandırma dosyalarını kontrol etmem gerekiyordu.
Nginx Yapılandırmasını Gözden Geçirme
Yapılandırma dosyası, Nginx’in nasıl çalışacağını belirleyen en önemli belgedir. Genellikle `/etc/nginx/nginx.conf` veya `/etc/nginx/sites-available/default` dosyasında bulunur. Aşağıdaki örnek yapılandırmayı inceledim:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}Burada, “proxy_pass” direktifinin doğru ayarlandığından emin oldum. Yanlış bir port numarası ya da yanlış bir URL girişi, Nginx’in arka uç sunucusunu bulamamasına neden olabiliyordu.
Arka Uç Sunucusunu Kontrol Etme
Nginx’in yönlendirdiği arka uç sunucusunun çalıştığından emin olmak gerekiyordu. Yine de localhost üzerinde çalışan bir Node.js uygulamasıydı. Aşağıdaki komut ile uygulamanın durumunu kontrol ettim:
sudo netstat -tuln | grep 3000Eğer arka uç sunucusu çalışmıyorsa, Nginx yanıt veremeyecekti. Uygulamayı başlattığımda, hemen terminalden çalıştığını doğruladım.
Nginx'i Yeniden Başlatma
Yapılandırma dosyasındaki değişiklikleri kaydettikten sonra, Nginx’i yeniden başlatmam gerekti. Aşağıdaki komut ile bunu kolayca gerçekleştirdim:
sudo systemctl restart nginxArtık her şeyin yolunda olup olmadığını kontrol etmek için tarayıcımı açtım ve tekrar denedim. Ve bu sefer, aradığım sayfa başarıyla yüklendi! Sorun çözülmüştü.
Sonuç
Nginx Reverse Proxy ayarlarıyla yaşadığım bu küçük macera, bana birçok şey öğretti. Hataların çoğu zaman basit yapılandırma hatalarından kaynaklandığını unutmamak gerekiyor. Log dosyalarını takip etmek, sorunun kaynağını bulmanın en etkili yollarından biridir. Unutmayın, her hata yeni bir öğrenme fırsatıdır. Umarım bu yazı, sizin de karşılaşabileceğiniz Nginx Reverse Proxy hatalarını gidermenizde yardımcı olur!