![Programi Mac v peskovniku lahko kadar koli posnamejo vaš zaslon, ne da bi to vedeli](/f/a598f0407b784f3e9503ca001df054f2.png?width=100&height=100)
Vsakič NGINX naleti na napako, ko poskuša obdelati odjemalčevo zahtevo, vrne napako. Vsaka napaka vključuje HTTP odzivno kodo in kratek opis. Napaka je običajno prikazana uporabniku prek preproste privzete vrednosti HTML stran.
Na srečo lahko konfigurirate NGINX za prikaz strani z napakami po meri uporabnikom vašega spletnega mesta ali spletne aplikacije. To je mogoče doseči s strani error_page NGINX direktivo ki se uporablja za opredelitev URI ki bo prikazana za določeno napako. Po želji ga lahko uporabite tudi za spreminjanje statusne kode HTTP v glavah odgovora, poslanih odjemalcu.
V tem priročniku bomo pokazali, kako konfigurirati NGINX za uporabo strani z napakami po meri.
Lahko konfigurirate NGINX za uporabo ene strani z napako po meri za vse napake, ki jih vrne odjemalcu. Začnite tako, da ustvarite stran z napako. Tukaj je primer preproste strani HTML, ki prikazuje sporočilo:
»Oprostite, strani ni mogoče naložiti! Za pomoč se obrnite na skrbnika spletnega mesta ali podporo.” stranki.
Vzorec kode strani po meri HTML Nginx.
Žal strani ni mogoče naložiti!
Za pomoč se obrnite na skrbnika spletnega mesta ali podporo.
Shranite datoteko na primer z ustreznim imenom napaka-stran.html in ga zaprite.
Nato premaknite datoteko v korenski imenik dokumenta (/var/www/html/). Če imenik ne obstaja, ga lahko ustvarite z ukaz mkdir, kot je prikazano:
$ sudo mkdir -p /var/www/html/ $ sudo cp error-page.html /var/www/html/
Nato konfigurirajte NGINX za uporabo strani z napako po meri z uporabo napaka_stran direktivo. Ustvarite konfiguracijsko datoteko z imenom custom-error-page.conf Spodaj /etc/nginx/snippets/ kot je prikazano.
$ sudo mkdir /etc/nginx/snippets/ $ sudo vim /etc/nginx/snippets/custom-error-page.conf
Dodajte mu naslednje vrstice:
error_page 404 403 500 503 /error-page.html; lokacija = /error-page.html { root /var/www/html; notranji; }
Ta konfiguracija povzroči notranjo preusmeritev na URI/napaka-stran.html vsakič NGINX naleti na katero koli od navedenih napak HTTP 404, 403, 500 in 503. The lokacija kontekst pove NGINX kje najti stran z napako.
Shranite datoteko in jo zaprite.
Zdaj vključite datoteko v http kontekstu, tako da vsi bloki strežnika uporabljajo stran z napako, v /etc/nginx/nginx.conf mapa:
$ sudo vim /etc/nginx/nginx.conf.
The vključujejo imenik pove NGINX vključiti konfiguracijo v navedeno .conf
mapa:
vključujejo snippets/custom-error-page.conf;
Druga možnost je, da lahko vključujejo datoteka za določen blok strežnika (splošno znan kot vhost), npr. /etc/nginx/conf.d/mywebsite.conf. Dodajte zgornje vključujejo direktivo v strežniku {}
kontekstu.
Shranite svoje NGINX konfiguracijsko datoteko in znova naložite storitev, kot sledi:
$ sudo systemctl znova naložite nginx.service.
In v brskalniku preizkusite, ali nastavitev deluje dobro.
Za vsako napako HTTP lahko nastavite tudi različne strani z napakami po meri NGINX. Odkrili smo dobro zbirko strani z napakami nginx po meri ustvaril Denys Vitali na Github.
Če želite nastaviti repozitorij na strežniku, zaženite naslednje ukaze:
$ sudo git klon https://github.com/denysvitali/nginx-error-pages /srv/http/privzeto $ sudo mkdir /etc/nginx/snippets/ $ sudo ln -s /srv/http/default/snippets/error_pages.conf /etc/nginx/snippets/error_pages.conf. $ sudo ln -s /srv/http/default/snippets/error_pages_content.conf /etc/nginx/snippets/error_pages_content.conf.
Nato dodajte naslednjo konfiguracijo v vašo http kontekst ali vsak blok strežnika/vhost:
vključi izrezke/error_pages.conf;
Shranite konfiguracijsko datoteko NGINX in znova naložite storitev, kot sledi:
$ sudo systemctl znova naložite nginx.service.
Prav tako v brskalniku preizkusite, ali konfiguracija deluje, kot je predvideno. V tem primeru smo preizkusili stran z napako 404.
To je vse, kar smo imeli za vas v tem priročniku. NGINX napaka_stran direktiva vam omogoča, da uporabnike preusmerite na določeno stran ali vir ali URL, ko pride do napake. Po želji omogoča tudi spreminjanje statusne kode HTTP v odgovoru odjemalcu. Za več informacij preberite stran z napako nginx dokumentacijo.