Nginx Hataları Nasıl Giderilir: Yaygın Sorunlar ve Çözümleri
Bu Rehberde Ne Öğreneceksiniz?
Bu rehberde Nginx üzerinde sık görülen hataları nasıl teşhis edeceğinizi öğreneceksiniz.
Hata logları, yapılandırma testleri ve servis kontrolleri adım adım ele alınır.
Nginx Hata Ayıklamaya Nereden Başlanmalı?
Nginx hataları genellikle yapılandırma veya servis durumundan kaynaklanır.
Doğru komutlarla sorunun kaynağı hızlıca bulunabilir.
Bu rehberde üç temel araca odaklanılır:
- Hata logları
- Yapılandırma testleri
- Servis durumu kontrolleri
1. Nginx Hata Loglarını İnceleme
- Hata logları, sorunun nedenini doğrudan gösterir.
sudo cat /var/log/nginx/error.log
- Bu komut Nginx hata kayıtlarını terminalde listeler.
- Log satırlarında tarih, hata seviyesi ve dosya yolu bulunur.
- emerg seviyesi, kritik ve çalışmayı engelleyen hataları gösterir.
- Eğer çıktı boşsa, kayıtlı bir hata yoktur.
2. Yapılandırma (Syntax) Hatalarını Kontrol Etme
- Yanlış yazılmış bir yönerge Nginx’in başlamasını engeller.
sudo nginx -t
- Bu komut Nginx yapılandırma dosyalarını test eder.
- Başarılı çıktı şu şekildedir:
syntax is ok
test is successful
- Hata varsa, dosya yolu ve satır numarası belirtilir. Değişiklik sonrası Nginx mutlaka yeniden yüklenmelidir.
sudo systemctl reload nginx
- Bu komut yapılandırmayı kesinti olmadan uygular.
3. Nginx Servis Durumunu Kontrol Etme
- Nginx çalışmıyorsa site erişilemez olur.
systemctl status nginx
- Bu komut servisin aktif olup olmadığını gösterir.
Durum active (running) olmalıdır.
- Eğer servis durmuşsa, yeniden başlatın:
sudo systemctl restart nginx
- Bu komut Nginx servisini yeniden başlatır.
4. Güvenlik Duvarı (Firewall) Ayarlarını Kontrol Etme
- Portlar kapalıysa Nginx çalışsa bile erişim olmaz.
sudo ufw status
- Bu komut açık portları listeler.
- HTTP için 80, HTTPS için 443 açık olmalıdır.
Her ikisini açmak için:
sudo ufw allow 'Nginx Full'
- Bu komut gerekli tüm Nginx portlarını açar.
5. Nginx Server Block Yapılandırmasını Doğrulama
- Yanlış server block ayarları sık hataya yol açar.
Örnek doğru yapılandırma:
server {
listen 80;
server_name ornek-site.com www.ornek-site.com;
root /var/www/ornek-site/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
- Bu yapılandırma alan adını doğru dizine yönlendirir.
** Dosya düzenlemesi sonrası mutlaka test yapın:
sudo nginx -t
Sıkça Sorulan Sorular (SSS)
1. Nginx hata veriyor ama site açılıyor, sorun var mı? Evet. Loglar ileride daha büyük sorunlara işaret edebilir.
2. nginx -t neden her değişiklikten sonra çalıştırılmalı? Yanlış yapılandırmayı erken fark etmenizi sağlar.
3. Hata logları çok kalabalık, ne yapmalıyım? Log seviyesini error veya warn olarak düşürebilirsiniz.
4. Firewall kapalıysa Nginx çalışır mı? Çalışır, ancak dış erişim olmaz.
Sonuç
Nginx hataları genellikle birkaç temel kontrolden sonra çözülür. Hata logları, yapılandırma testleri ve servis durumu en kritik araçlardır.
Daha stabil ve sorunsuz Nginx altyapıları için Rabisu Bulut platformunu hemen deneyebilirsiniz.