it-swarm-id.com

Halaman Gateway Buruk Kustom dengan Nginx

Apakah mungkin melayani halaman kesalahan "Gerbang Buruk" khusus di Nginx? 

Mirip dengan memiliki 404 halaman khusus.

42
deb

Ini mirip dengan mengatur halaman 404 khusus. Inilah yang saya punya.

#site-wide error pages
error_page 404 /404.html;
error_page 500 502 503 504 /500.html;
30
Larsenal

Ada tiga bagian yang harus ada agar halaman kesalahan khusus Anda ditampilkan, bukan kesalahan umum "Gerbang Buruk". 

  1. Anda harus membuat file html bernama sesuatu seperti "500.html" dan letakkan di root. Dalam kasus Rails yang berjalan di belakang Nginx, ini berarti meletakkannya di publik/500.html.

  2. Anda harus memiliki satu baris dalam file konfigurasi Anda yang menunjukkan setidaknya 502 kesalahan pada halaman 500.html seperti ini:

    error_page 502 /500.html;
    
  3. Anda harus memiliki blok lokasi untuk /500.html dalam file konfigurasi Anda. Jika root Anda sudah ditentukan, blok ini bisa kosong. Tetapi toh harus ada. 

    location /500.html{
    }
    
43
Jack Desert

Ya itu mungkin 

Ketikkan ini di terminal Anda

cd /etc/nginx

Sudo nano nginx.conf

dan di bawah http tambahkan baris-baris ini

    error_page 500 Path_to_your_custom_error_page;
    error_page 503 Path_to_your_custom_error_page;
    error_page 504 Path_to_your_custom_error_page;

Sekarang restart nginx dengan mengetikkan perintah ini:

Sudo service nginx restart

Bingo sekarang Anda dapat melihat pesan kesalahan khusus pada kesalahan gateway

2
Sachin Jaiswal

Pertanyaannya tidak mengatakan, tetapi cukup umum untuk mengatasi masalah ini ketika API berada di belakang proxy nginx, jadi dalam hal ini Anda ingin responsnya menjadi JSON bukan HTML.

Pendekatan favorit saya adalah dengan hanya menggunakan fungsi arahan error_page direktif untuk mengarahkan kembali ke halaman kesalahan di situs yang sama:

error_page 502 503 $scheme://$server_name/500.json;

Ini satu baris, Anda dapat menggunakan kembali 500.json yang sama untuk location yang berbeda, dan tidak perlu location kosong yang misterius. Anda menempatkan pesan kesalahan Anda di file 500.json di root situs Anda. Saya berasumsi bahwa Anda sudah memiliki arahan location / {...} di sana yang menyajikan file statis.

Anda tentu saja dapat menggunakan pendekatan yang sama ini untuk melayani halaman kesalahan HTML juga.

0
jlyonsmith

menggunakan debian (sebenarnya stretch 9.3) saya lakukan langkah-langkah berikut:

  • buat /var/www/html/502.html dengan konten untuk halaman kesalahan 502

  • edit /etc/nginx/sites-enabled/mywebsite.conf

jadi terlihat mirip seperti ini:

server {
    listen 80; listen [::]:80;
    server_name www.mywebsite.com;

    error_page 502 /502.html;
    location /502.html {
        root /var/www/html;
    }
}
  • kemudian restart nginx menggunakan service nginx restart
0
vchrizz