İstemci ve Sunucu için NGINX Dahili Sunucu Hatası 500'ün Çözümü

Nginx (telaffuzu Motor-XEkim 2004'te halka açık olarak yayınlanan açık kaynaklı bir web sunucusu olan ( ), aynı zamanda yük dengeleyici, ters proxy ve HTTP önbelleği olarak da işlev görür. Popülerliği ve kullanışlılığı, Microsoft, Google, Facebook, Twitter ve Apple gibi önde gelen teknoloji şirketleri tarafından benimsenmesinden açıkça görülmektedir.

nginx

Nginx'te 500 Dahili Sunucu Hatasının Anlamı

Diğer yazılım uygulamaları veya sunucular gibi, Nginx de yerleşik hata raporlama sistemiyle tespit edebileceği hatalarla karşılaşabilir. Ancak, 500 Dahili Sunucu Hatası benzersiz bir durumdur. Bu hata, Apache ve IIS gibi çeşitli web sunucularında da ortaya çıkar.

Nginx Dahili Sunucu Hatası 500

500 hatası, temel nedeni net olarak belirlenemeyen bir sunucu sorununu gösteren bir HTTP durum kodudur. 403 (Yasak) veya 404 (Bulunamadı) gibi diğer HTTP durum kodlarından farklı olarak, olası neden hakkında herhangi bir ipucu vermez.

Nginx'te istemci tarafından 500 hatası nasıl düzeltilir?

Bu hata kodu, genellikle sunucu tarafında çözülebilen bir sunucu sorununa işaret eder. Ancak nadir durumlarda, tarayıcınız sunucunun işleyemeyeceği bir istek oluşturarak soruna katkıda bulunabilir.

Sorunun tarayıcıdan kaynaklanıp kaynaklanmadığını kontrol etmek için, web sitesini farklı bir tarayıcıda, farklı bir cihazda ve farklı bir ağda açın. Eğer doğru çalışıyorsa, orijinal tarayıcının önbelleğini/verilerini temizleyin ve soruna neden olan herhangi bir tarayıcı uzantısı olmadığından emin olun.

Nginx web sitesi hala 500 hatası veriyorsa, sorunu çözmek için sunucu yöneticinizle iletişime geçin.

Sunucu tarafında Nginx 500 hatası nasıl düzeltilir?

Bu hata basit bir sözdizimi hatasından veya arka uç uygulamasındaki bir sorundan kaynaklanabilir. Hata kök nedeni göstermediği için sorun giderme zor olabilir. Ancak endişelenmeyin, aşağıda ele aldığımız sistematik yaklaşım sorunu çözebilir.

1. Sunucu aşırı yüklenmesini kontrol edin.

Sunucunuz aşırı yüklendiğinde, temel görevler için yetersiz kaynak nedeniyle dahili 500 hatası gösterebilir. Free, Top veya HTop komutlarını kullanarak CPU kullanımını, bellek kullanımını ve disk alanı kullanılabilirliğini kontrol edin. Aşağıdaki ekran görüntüsü, top komutunu çalıştırdıktan sonraki çıktıyı göstermektedir.

Sunucu kaynak doğrulaması

Sunucu aşırı yüklendiğinde, kaynak sayısını artırmak Nginx 500 hatasını çözmelidir.

2. Kompozisyonun sözdiziminin kontrol edilmesi

Nginx'te 500 hatasının en yaygın nedeni, yapılandırma sözdizimi hatası nedeniyle yanlış sunucu ayarlarıdır.

Bu sorunu düzeltmek için Nginx yapılandırma dosyalarını gözden geçirin ve söz diziminde herhangi bir hata veya yanlış yerleştirilmiş yönerge olup olmadığını dikkatlice kontrol edin.

Ardından, Nginx yapılandırma dosyalarınızı sözdizimi hataları veya yanlış yerleştirilmiş yönergeler açısından gözden geçirin. Sözdizimini kontrol etmek ve hataları belirlemek için `nginx -t` veya `nginx -t -c /path/to/nginx.conf` gibi komutları kullanın. Hataları tespit etmek için terminalde aşağıdaki komutları çalıştırın:

cd /etc/nginx/sites-available nginx -t

Kompozisyonun sözdizimini kontrol etme

Ayrıca şunları da kullanabilirsiniz:

nginx -t -c /path/to/nginx.conf

Herhangi bir sözdizimi hatası tespit edilirse, bunları düzeltin ve Nginx'i yeniden başlatmak/yeniden yüklemek için aşağıdakileri yapın:

sudo service nginx restart nginx -s reload

Bazı durumlarda, aşağıdaki gibi yapılandırma dosyasını değiştirmeniz gerekebilir:

try_files ile try_files $uri =404

أو

try_files $uri $uri/ /index.html; with try_files $uri/ $uri /index.php?$query_string;

3. Sunucu günlüklerini kontrol etme

Nginx 500 hatası verdiğinde, hatanın temel nedenini gösterebilecek bir kayıt da dahili hata günlüğüne eklenir. Sunucu günlükleri genellikle şu konumlarda bulunur:

/var/log/nginx/error.log

Linux dağıtımında sunucu günlüğünü açmak için aşağıdakileri yapın:

cd /var/log/nginx cat error.log

Açılan sayfada, temel nedenin göstergelerini inceleyebilirsiniz. Örneğin, aşağıdaki resme bakın:

Sunucu günlükleri kontrol ediliyor.

Bu, sunucunun SSL sertifikasıyla ilgili bir sorun nedeniyle istemciyle SSL/TLS bağlantısı kuramadığını gösterir. Günlüklerde sorunu belirledikten sonra, olası nedenleri ve çözümleri çevrimiçi olarak arayabilirsiniz.

Klasör için "izin reddedildi" hatası nedeniyle kayıt defterini açamıyorsanız, Nginx.conf dosyasındaki "user www-data" ifadesini "user root" ile değiştirin. Dosyayı kaydettikten sonra Nginx'i yeniden başlatın ve kayıt defterini tekrar açmayı deneyin.

4. Cloudflare veya benzeri hizmetleri geçici olarak devre dışı bırakın.

Sunucunuzda Cloudflare veya benzeri bir hizmet kullanıyorsanız ve bu hizmet doğru yapılandırılmamışsa veya son güncellemelerle çakışıyorsa, geçici olarak devre dışı bırakmak sorunu teşhis etmenize yardımcı olabilir.

  1. Adresine git Cloudflare Kontrol Paneli Ve kimlik bilgilerinizle giriş yapın.
  2. Adresine git Genel Bakış (Genel Bakış) ve genişletin Advanced (Gelişmiş ayarlar).
  3. Tıklayın Web sitesini duraklat (Siteyi duraklatın) ve onaylayın. Barındırma sağlayıcınız Cloudflare entegrasyonuna sahipse, bunları da devre dışı bıraktığınızdan emin olun.
  4. Sitenin doğru IP adreslerine sahip olduğunuzdan emin olun ve Nginx 500 dahili sunucu hatasının çözülüp çözülmediğini kontrol edin. Sitenin hem HTTP hem de HTTPS sürümlerini kontrol etmeyi unutmayın. Web sitesinde CloudFlare'ı devre dışı bırakın.

5. Sunucu sertifikalarını doğrulayın

Eğer mevcut ayarlarınızda sertifikalarınızdan herhangi birinin süresi dolmuşsa veya geçersiz hale gelmişse, bu durum dahili sunucuda kesinlikle bir hataya neden olacaktır.

  1. Nginx'i kullanacak şekilde yapılandırın. IP adresi Web siteniz için, alan adı için değil. Nginx ayarlarında sunucunun IP adresini kullanın.
  2. Devre dışı bırakmak SSL doğrulaması proxy_pass'e kendinden imzalı sertifikayı ekleyin. Bunu Cloudflare kontrol panelinizden (SSL > İstemci Sertifikaları) oluşturabilirsiniz.
  3. Sunucunun doğru çalışıp çalışmadığını kontrol edin. Eğer çalışıyorsa, sertifika yetkilisiyle iletişime geçin veya ayarlarınızda herhangi bir yanlış sertifika yapılandırması olup olmadığını kontrol edin.

6. Arka uç uygulamalarındaki hataları kontrol edin.

Nginx, istemci isteklerini doğru şekilde çalışmayan başka bir servise yönlendirirse, 500 hatası oluşur. Örneğin, sunucu istemci isteklerini NodeJS gibi bir arka uç uygulamasına yönlendirirse ve uygulama doğru çalışmazsa, yukarıda belirtilen hata ortaya çıkar.

Unutmayın, sunucu günlüklerinde herhangi bir hata görünmüyorsa, bu genellikle arka uçta bir sorun olduğunu gösterir.

Bu sorunu çözmek için, arka uç uygulama günlüklerinde herhangi bir hata veya istisna olup olmadığını kontrol edin. Örneğin, WordPress'te NodeJS günlüklerini şu yolda bulabilirsiniz:

/var/www/ .com/logs/error.log

7. Yetersiz dosya izinleri

Nginx sunucusunun bir dosyaya erişmek veya dosyayı çalıştırmak için gerekli izinlere sahip olmaması durumunda 500 hatası oluşur. Örneğin, Nginx sunucusu public_html klasöründeki PHP veya HTML dosyalarına erişemezse veya bunları sunamazsa, WordPress sitesinde dahili sunucu hatası meydana gelir.

Bunu düzeltmek için, sunucunun eriştiği dosya veya dizinlerdeki gerekli Nginx izinlerini şu komutu kullanarak değiştirebilirsiniz: chmodGenellikle dizinler için 755, dosyalar için ise 644 kullanılır.

8. Eklentilerin uyumluluğunun kontrol edilmesi

Eklentiler, sunucu yeteneklerini geliştirmede çok önemli bir rol oynar. Ancak, doğru çalışmayan, güncel olmayan veya aşırı güncellenen eklentiler, sunucu içinde hatalara neden olabilir. Örneğin, bir WordPress güncellemesi, birçok eklenti güncellenene kadar uyumsuz hale geldiği için sitenizin işlevselliğini bozabilir.

Bu sorunu çözmek için, her eklemenin doğru şekilde yapıldığından emin olun. Uyumlu Sunucu yazılımı ve diğer eklentilerle ilgili olarak. Bu zahmetli görünse de, çabaya değer. Alternatif olarak, hatanın çözülüp çözülmediğini görmek için tüm eklentileri devre dışı bırakmayı deneyin.

Sunucu yazılımınızı yakın zamanda güncellediyseniz, şunu deneyin: Dönüş Sorunun çözülüp çözülmediğini görmek için (mümkünse) önceki sürüme geri dönün. Bu, güncellemenin soruna neden olup olmadığını doğrulayacaktır. Tüm eklentilerin uyumlu olduğu onaylanana kadar yazılım güncellemesini erteleyebilirsiniz.

9. Hatalı komut dosyalarını kontrol edin.

Eklentiler gibi, komut dosyaları da belirli web sitesi işlevleri için çok önemlidir. Bozuk, güncel olmayan veya uyumsuz bir komut dosyası, dahili sunucu hatasına neden olabilir.

Bu sorunu şu şekilde çözebilirsiniz: Komut dosyalarını devre dışı bırakma Nginx sunucusunu kontrol edin. Eğer doğru çalışıyorsa, komut dosyalarını inceleyin ve soruna neden olan komut dosyalarını belirlemeye çalışın.

10. Sunucu zaman aşımı değerini artırın.

Sunucu zaman aşımı değeri Nginx yanıt süresinden kısa ise, dahili sunucu hatasıyla karşılaşacaksınız. Benzer şekilde, sunucu isteği Nginx yanıt süresinden uzun sürerse de sorun oluşacaktır.

Sunucu zaman aşımı değerini artırmak sorunu çözmelidir. Ayrıntılı talimatları internette bulabilirsiniz.

11. Tüm yönlendirme işlemlerinin çalıştığından emin olun.

Nginx proxy sunucusu olarak çalışırken tüm yönlendirme işlemlerinin doğru çalıştığından emin olun. Sunucu, istemci isteğini arka uç sunucusuna yönlendiremezse, 500 hatası oluşacaktır.

Tüm yönlendirmeleri geçici olarak devre dışı bırakın Doğru çalışmayı doğrulamak için, başarılı olursa, hatalı yönlendirmeyi belirlemek üzere her işlemi ayrı ayrı yeniden başlatın. Hatalı yönlendirme belirlendikten sonra, bu özel yönlendirme hatasının olası nedenlerini ve çözümlerini çevrimiçi olarak arayın.

12. PHP'yi Nginx ile Kullanmak

Nginx, PHP'yi doğal olarak desteklemez; bu nedenle, Nginx ile yanlış PHP yapılandırmaları dahili sunucu hatasına yol açabilir.

Bu sorunu çözmek için, PHP'nin Nginx ile entegrasyonunu kontrol edin. PHP hata gösterimi devre dışı bırakılmışsa, PHP bir sorunla karşılaştığında sunucu Nginx 500 hatası döndürecektir. PHP hata gösterimini etkinleştirmek, sorun gidermeyi kolaylaştırabilir.

CentOS 7 üzerinde aşağıdaki işlemleri gerçekleştirin:

tail -f /var/log/php-fpm/www-error.log

Bunun yerine şuraya gidin:

/ Etc / php.ini

Ve değişim

display_errors = Kapalı

إلى

hata_görüntüleme = Açık

Daha iyi bir PHP işlemcisi (örneğin PHP-FPM) arayabilir ve Nginx önbelleklemesini etkinleştirebilirsiniz.

13. Minimalist yaklaşımı kullanın.

Eğer 500 hatasını hala gideremiyorsanız, sorunu çözmek için minimalist yaklaşımı kullanabilirsiniz.

  1. kurulmuş Yedek kopya Sitenizdeki içeriği, içinde düz metin bulunan basit bir index.html dosyasıyla değiştirin.
  2. Sitenin çalışıp çalışmadığını kontrol edin. o çalışıyor Yönergeleri, özellikleri, hizmetleri, eklentileri, komut dosyalarını vb. tek tek eklemeye başlayın.
  3. Her adımdan sonra siteyi test ettiğinizden ve sorunun tekrar edip etmediğine baktığınızdan emin olun.
  4. İçeriği sitenize geri yükleyin ve sorunun kaynağının içerik olup olmadığını kontrol edin.
  5. Soruna neden olan unsuru bulduktan sonra, internette arama yaparak sorunu çözebilirsiniz.

Nginx 500 sunucu hatasının gelecekte tekrarlanmasını nasıl önleyebilirim?

Nginx 500 hatasının tekrarını önlemek için aşağıdaki adımları uygulayabilirsiniz:

  • Sunucuya düzenli bakım yapın.
  • Sitenin kodunun ve içeriğinin (resimler, videolar vb.) ayarlarınıza uygun şekilde optimize edildiğinden emin olun.
  • Siteyi önbelleği üzerinden sunmak için bir İçerik Dağıtım Ağı (CDN) oluşturun.

Herhangi bir sorunuz varsa, yorumlar bölümünden bize ulaşabilirsiniz.

Yoruma kapalı.