Nginx Web Sunucusu Yaygın Hatalar ve Çözüm Yolları

nginx hatalari cpynet

Nginx, yüksek performansı, düşük kaynak tüketimi ve ölçeklenebilirliği ile milyonlarca web sitesinin temelini oluşturan güçlü ve esnek bir web sunucusudur. Küçük kişisel sitelerden büyük ölçekli uygulamalara kadar her boyuttaki projeye uygun olan Nginx, bazen hatalar ve sorunlarla karşılaşabilir. Bu makalede, Nginx kullanıcılarının sık karşılaştığı hataları ve bu sorunları etkili bir şekilde çözmek için ipuçlarını ele alacağız.

Bu kılavuzu okuyarak, Nginx sunucunuzu daha verimli yönetmek ve karşılaşabileceğiniz sorunları güvenle çözmek için gerekli bilgiye sahip olacaksınız.


İçindekiler

  1. Gereksinimler
  2. Sistem Güncellemesi
  3. Nginx Kurulumu
  4. Yaygın Nginx Hataları ve Çözümleri
    • Address family not supported by protocol
    • Varsayılan Nginx Sayfası
    • 403 Forbidden
    • 404 Not Found
    • 500 Internal Server Error
    • 502 Bad Gateway
    • 504 Gateway Timeout

1. Gereksinimler

Sorun giderme işlemlerine başlamadan önce sisteminizin aşağıdaki gereksinimleri karşıladığından emin olun:

  • Linux Dağıtımı: Ubuntu 20.04, CentOS, AlmaLinux, Debian veya uyumlu bir sürüm
  • Kullanıcı Yetkileri: Root ya da sudo yetkisine sahip bir kullanıcı
  • Nginx Sürümü: Yüklü olan en son kararlı Nginx sürümü

2. Sistem Güncellemesi

Sistem güncel olmadığında güvenlik açıkları ve hatalarla karşılaşmanız olasıdır. Yazılım yüklemeden veya yapılandırmadan önce şu komutla sisteminizi güncelleyebilirsiniz:

sudo apt update -y && sudo apt upgrade -y

3. Nginx Kurulumu

Eğer Nginx yüklü değilse, aşağıdaki komutla yükleyebilirsiniz:

sudo apt install nginx -y<br>

Ardından Nginx hizmetini başlatın ve sistem açılışında otomatik başlatılması için etkinleştirin:

sudo systemctl start nginx
sudo systemctl enable nginx

Nginx’in düzgün çalıştığını kontrol etmek için:

sudo systemctl status nginx

Hizmetin active (running) durumunda olması, Nginx’in sorunsuz çalıştığını gösterir.

Nginx, yüksek performanslı bir web sunucusu ve ters proxy sunucusu olarak popülerdir, ancak bu popülerlikle birlikte, kullanıcıların sıkça karşılaştığı bazı yaygın sorunlar gelir. Bu makalede, bu sorunları ve etkili çözümlerini ayrıntılı bir şekilde ele alıyoruz.

Nginx, yüksek performanslı bir web sunucusu ve ters proxy olarak yaygın şekilde kullanılan güçlü bir araçtır. Ancak, yapılandırma karmaşıklığı ve sunucu entegrasyonları nedeniyle kullanıcılar bazen hatalarla karşılaşabilir. Bu makalede, Nginx’te sıkça görülen hataların İngilizce tanımlarını ve bu hatalara yönelik Türkçe çözümlerini ayrıntılı bir şekilde inceleyeceğiz.


1. “502 Bad Gateway”

Hatanın Tanımı:
“502 Bad Gateway” hatası, genellikle Nginx ile arka uç (backend) sunucu arasındaki iletişimde bir sorun olduğunda ortaya çıkar. Arka uç sunucusu çalışmıyor olabilir veya Nginx proxy ayarları yanlış yapılandırılmış olabilir.

Çözüm:

  1. Arka Uç Sunucusunu Kontrol Edin:
    Backend (örneğin, PHP-FPM) sunucusunun çalışıp çalışmadığını kontrol edin:
sudo systemctl status php-fpm

Eğer sunucu çalışmıyorsa, şu komutla başlatabilirsiniz:

sudo systemctl start php-fpm
  1. Nginx ve Backend Ayarlarını Doğrulayın:
    Nginx yapılandırma dosyasındaki fastcgi_pass veya proxy_pass direktifinin doğru olduğundan emin olun.
    Örnek yapılandırma:
location ~ \.php$ {
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
  1. Bağlantı Sorunlarını Giderin:
    netstat veya curl ile backend sunucusuna bağlantı kurabiliyor musunuz, bunu kontrol edin. Örneğin:
curl http://127.0.0.1:9000

2. “403 Forbidden”

Hatanın Tanımı:
403 hatası, istemcinin (client) belirli bir dosya veya dizine erişim yetkisi olmadığında görülür. Bu genellikle dosya izinleri veya Nginx yapılandırmasındaki yanlışlıklarla ilişkilidir.

Çözüm:

  1. Dosya İzinlerini Kontrol Edin:
    Web dosyalarının doğru izinlere sahip olup olmadığını kontrol edin:
sudo chmod -R 755 /var/www/html
sudo chown -R www-data:www-data /var/www/html
  1. SELinux Ayarlarını İnceleyin:
    SELinux etkinse, bu da erişim kısıtlamasına neden olabilir. Şu komutlarla SELinux ayarlarını kontrol edin:
getenforce
setenforce 0  # Geçici olarak devre dışı bırakır.
  1. Nginx Yapılandırmasını Doğrulayın:
    root veya index direktiflerinde hata olmadığından emin olun:
location / {
    root /var/www/html;
    index index.html;
}

3. “504 Gateway Timeout”

Hatanın Tanımı:
Nginx’in bir backend sunucusundan zamanında yanıt alamaması durumunda bu hata görülür. Bu genellikle yoğun trafik veya uzun çalışan işlemlerle ilişkilidir.

Çözüm:

  1. Zaman Aşımı Süresini Artırın:
    Backend işlemlerine daha fazla zaman tanımak için şu ayarları yapabilirsiniz:
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_send_timeout 300;
  1. Backend Performansını Optimize Edin:
    Backend uygulamanızın yüksek yük altında düzgün çalıştığından emin olun. Örneğin, sorgu sürelerini düşürmek veya işlem sırasını optimize etmek gerekebilir.
  2. Bağlantıları İzleyin:
    Şu komutlarla bağlantı sorunlarını kontrol edin:
netstat -tuln

4. “Nginx Service Failed to Start”

Hatanın Tanımı:
Nginx servisi, hatalı bir yapılandırma dosyası veya port çakışması nedeniyle başlatılamayabilir.

Çözüm:

  1. Yapılandırmayı Test Edin:
    Nginx yapılandırmasını başlatmadan önce doğrulayın:
sudo nginx -t
  1. Varsayılan Port Çakışmasını Giderin:
    80 veya 443 portları başka bir uygulama tarafından kullanılıyorsa, Nginx için farklı bir port belirleyin:
server {
    listen 8080;
}
  1. Logları Kontrol Edin:
    /var/log/nginx/error.log dosyasını kontrol ederek hata detaylarını öğrenin.

5. “Static Files Not Loading”

Hatanın Tanımı:
Statik dosyaların (CSS, JS, img) yüklenmemesi genellikle root veya alias direktiflerinde yapılan yanlışlıklarla ilişkilidir.

Çözüm:

  1. Doğru Root veya Alias Kullanımı:
    Statik dosya dizini için doğru yolu belirlediğinizden emin olun:
location /static/ {
    root /var/www/html;
}
  1. MIME Türlerini Tanımlayın:
    Statik dosyalar için uygun MIME türlerini etkinleştirin. Örnek yapılandırma:
include /etc/nginx/mime.types;
  1. Dosya İzinlerini Kontrol Edin:
    Statik dosyaların okuma izinlerine sahip olduğundan emin olun.

6. “SSL/TLS Issues”

Hatanın Tanımı:
SSL sertifikasıyla ilgili sorunlar genellikle hatalı veya eksik ara sertifikalardan kaynaklanır. Ayrıca, eski protokoller uyumluluk sorunlarına neden olabilir.

Çözüm:

  1. Doğru Sertifika ve Zincir Kullanımı:
    Sertifika ve zincir dosyalarını doğru şekilde yapılandırın:
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
ssl_trusted_certificate /etc/nginx/ssl/chain.pem;
  1. Protokolleri Güncelleyin:
    Sadece güvenli SSL/TLS protokollerini etkinleştirin:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
  1. Sertifika Analizi Yapın:
    SSL Labs gibi bir araçla sertifikanızı test edin.

Sonuç

Bu makalede, Nginx’te sıkça karşılaşılan sorunlar ve bu sorunların nasıl çözüleceği detaylı bir şekilde ele alındı. Doğru yapılandırma ve düzenli bakım ile Nginx’i daha verimli bir şekilde kullanabilirsiniz.

Önceki Konu

Linux Üzerinde Node.js ve npm Kurulumu

Sonraki Konu

Yaygın Google Chrome Hataları ve Çözümleri

Bültenimize Abone Olun 📬

En son gönderilerimizin doğrudan e-posta kutunuza gelmesi için e-posta bültenimize abone olun.
Düşüncelerinizi özgür bırakın ✨