"Enter"a basıp içeriğe geçin

NGINX Hata Sayfaları | Error Pages

Last updated on 10 Eylül 2020

Şu aşamada çalışan basit bir HTTP sunucumuz var, ancak biri var olmayan bir sayfaya gittiğinde veya başka bir tür hata meydana geldiğinde işe yarar, yararlı bir hata sayfası dönmüyor. Bu yazımızda, sunucumuzun HTTP hata yanıtlarını nasıl özelleştirebileceğimize bakacağız.

Hemen kaynak sayfalarımızı not düşelim,

Mevcut Hata Sayfaları

HTTP sunucularında göreceğimiz en yaygın hata, birisi var olmayan bir URL’ye erişmeye çalıştığında 404 hatası olacaktır. Curl kullanarak veya sahte bir URL’ye giderek mevcut 404 hata sayfamızı görebiliriz:

curl localhost/fake.html

404 Not Found

nginx/1.12.2

Bu, NGINX’in bizim için oluşturduğu hata sayfasıdır, ancak neredeyse hiç yararlı bilgi vermez ve muhtemelen farklı bir hata sayfası oluşturmak isteyeceğimiz bir durum söz konusu. Neyse ki, bunu error_page yönergesi ile yapabiliriz. Sunucumuzun /usr/share/nginx/html’ye ekleyeceğimiz bir 404.html dosyası kullanması gerektiğini belirtelim:

/etc/nginx/conf.d/default.conf

server {
    listen 80 default_server;
    server_name _;
    root /usr/share/nginx/html;

    error_page 404 /404.html;

}

Custom 404 sayfamızı ekleyelim ve yapılandırmamızı yeniden yükleyelim:

echo "<h1> 404 Page Not Found </h1>" > /usr/share/nginx/html/404.html
[root]$ systemctl reload nginx
[root]$ curl localhost/fake.html
<h1> 404 Page Not Found </h1>

Artık custom 404 sayfalarımızı görebiliyoruz.

50x Hata Sayfalarını Ekleme

Diğer bir yaygın hata türü, dahili bir sunucu hatasıdır (500’ün üzerindeki herhangi bir yanıt kodu). Birden fazla yanıt kodu kullanan başka bir error_page yönergesi ekleyeceğiz:

/etc/nginx/conf.d/default.conf

server {
    listen 80 default_server;
    server_name _;
    root /usr/share/nginx/html;

error_page 404 /404.html;
error_page 500 501 502 503 504 /50x.html;

}

50x.html dosyası zaten mevcut ve biz sadece onun işlenmesine neden olması gereken durum kodlarının listesini belirtmemiz gerekiyordu.

Başka bir yazımızda görüşmek üzere,

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.