Am Nginx care lucrează ca proxy invers și o aplicație Django în spatele lui. Aplicația Django este conectată la Nginx prin UWSGI. Aplicația Django este implementată folosind Docker și se oprește aproximativ o secundă în timpul implementării. Aș dori să îi instruiesc pe Nginx să returneze pagina de eroare 503 personalizată în acea perioadă.
Mai jos este configurația mea Nginx:
în amonte server_django {
server 0.0.0.0:8000;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
nume_server server.com;
Locație / {
# necesar pentru a servi materiale statice
alias /data/server.com/website_root/;
try_files $uri @django;
}
locație @django {
uwsgi_pass server_django;
includ /etc/nginx/uwsgi_params;
}
}
Am încercat să adaug următoarea configurație în blocul „server”:
uwsgi_intercept_errors activat;
pagina_eroare 502 503 504 =503 @django_is_down;
locație @django_is_down {
root /error_pages/server.com/;
add_header Reîncercați-După 10 întotdeauna;
index 503.html;
}
dar nu a ajutat, deoarece Nginx a continuat să servească pagina implicită 404 atunci când backend-ul este oprit.
Cum detectez când Django este inactiv în Nginx și servesc o pagină de eroare personalizată atunci când se întâmplă acest lucru?