Jak utworzyć niestandardową stronę błędu 404 w Nginx

Jak utworzyć niestandardową stronę błędu 404 w Nginx

Za każdym razem Nginx napotyka błąd, gdy próbuje przetworzyć żądanie klienta, zwraca błąd. Każdy błąd obejmuje Http Kod odpowiedzi i krótki opis. Błąd jest zwykle wyświetlany użytkownikowi za pośrednictwem prostej domyślnej Html strona.

Na szczęście możesz skonfigurować Nginx Aby wyświetlić niestandardowe strony błędów dla użytkowników Twojej witryny lub aplikacji internetowej. Można to osiągnąć za pomocą strony Errorx Nginx dyrektywa który służy do zdefiniowania URI To zostanie pokazane dla określonego błędu. Możesz także opcjonalnie użyć go do modyfikacji kodu stanu HTTP w nagłówkach odpowiedzi wysłanych do klienta.

W tym przewodniku pokażemy, jak skonfigurować Nginx Aby użyć niestandardowych stron błędów.

Utwórz jedną stronę niestandardową dla wszystkich błędów Nginx

Możesz skonfigurować Nginx Aby użyć pojedynczej strony niestandardowej błędu dla wszystkich błędów, które zwraca do klienta. Zacznij od utworzenia strony błędu. Oto przykład, prosta strona HTML, która wyświetla wiadomość:

„Przepraszam, strony nie można załadować! Skontaktuj się z administratorem witryny lub wsparcie w celu uzyskania pomocy.„Do klienta. 

Przykładowy kod strony HTML Nginx.

    * -Webkit-box-rozmiar: border-box; Rozmiar pola: granica;  korpus padding: 0; Margines: 0;  #notfound pozycja: krewne; Wysokość: 100 VH;  #nie znaleziono .notfound pozycja: absolut; Po lewej: 50%; TOP: 50%; -Webkit-transform: Tłumacz (-50%, -50%); -MS-transform: Tłumacz (-50%, -50%); Transform: Tłumacz (-50%, -50%);  .notfound max-szerokość: 520px; szerokość: 100%; Wysokość linii: 1.4; Text-Align: Center;  .nie znaleziono .notfound-error pozycja: względna; Wysokość: 200px; Margines: 0px Auto 20px; z -index: -1;  .nie znaleziono .notfound-error h1 Font-Family: „MontsSerrat”, sans-serif; Rozmiar czcionki: 200px; czcionek: 300; margines: 0px; Kolor: #211B19; Pozycja: absolutna; Po lewej: 50%; TOP: 50%; -Webkit-transform: Tłumacz (-50%, -50%); -MS-transform: Tłumacz (-50%, -50%); Transform: Tłumacz (-50%, -50%);  @Media tylko ekran i (maksymalna szerokość: 767px)  .nie znaleziono .notfound-error h1 font-size: 148px;  @Media tylko ekran i (maksymalna szerokość: 480px)  .nie znaleziono .notfound-error height: 148px; Margines: 0px Auto 10px;  .nie znaleziono .notfound-error h1 font-size: 120px; Font-Weight: 200px;  .nie znaleziono .notfound-error h2 font-size: 30px;  .nie udało się padding: 7px 15px; Rozmiar czcionki: 24px;  .H2 Font-size: 148px;       

Przepraszam, że strony nie można załadować!

Skontaktuj się z administratorem witryny lub wsparcie w celu uzyskania pomocy.

Zapisz na przykład plik o odpowiedniej nazwie strona błędu.html i zamknij to.

Następnie przenieś plik do katalogu głównego dokumentu (/var/www/html/). Jeśli katalog nie istnieje, możesz go utworzyć za pomocą polecenia MKDIR, jak pokazano:

$ sudo mkdir -p/var/www/html/$ sudo cp -seria błędów.html/var/www/html/ 

Następnie skonfiguruj Nginx Aby użyć niestandardowej strony błędu za pomocą error_page dyrektywa. Utwórz plik konfiguracyjny wywoływany Niestandardowa strona.conf pod /etc/nginx/fragmenty/ jak pokazano.

$ sudo mkdir/etc/nginx/fragmenty/$ sudo vim/etc/nginx/fragmenty/custom-error-page.conf 

Dodaj do niego następujące wiersze:

ERROR_PAGE 404 403 500 503 /Błąd.html; lokalizacja = /strona błędu.html root/var/www/html; wewnętrzny;  

Ta konfiguracja powoduje przekierowanie wewnętrzne do URI/strona błędu.html za każdym razem Nginx napotyka dowolne z określonych błędów HTTP 404, 403, 500 i 503. Lokalizacja Kontekst mówi Nginx gdzie znaleźć stronę błędu.

Zapisz plik i zamknij go.

Teraz dołącz plik w http kontekst, aby wszystkie bloki serwerowe użyły strony błędu w /etc/nginx/nginx.conf plik:

$ sudo vim/etc/nginx/nginx.conf 

włączać Katalog mówi Nginx Aby uwzględnić konfigurację w określonej .conf plik:

Dołącz fragmenty/strona niestandardowa.conf; 

Alternatywnie możesz włączać plik dla określonego bloku serwera (powszechnie znanego jako vhost), Na przykład, /etc/nginx/conf.D/MyWebsite.conf. Dodaj powyższe włączać dyrektywa na serwerze kontekst.

Uchroń swoje Nginx Plik konfiguracyjny i ponownie załaduj usługę w następujący sposób:

$ sudo systemCtl Reload nginx.praca 

I przetestuj z przeglądarki, jeśli konfiguracja działa dobrze.

Nginx niestandardowa strona 404

Utwórz różne niestandardowe strony dla każdego błędu Nginx

Możesz także skonfigurować różne niestandardowe strony błędów dla każdego błędu HTTP w Nginx. Odkryliśmy dobry kolekcja niestandardowych stron błędów nginx utworzonych przez Denys vitali NA Github.

Aby skonfigurować repozytorium na serwerze, uruchom następujące polecenia:

$ sudo git clone https: // github.com/denysvitali/nginx-error-pages/srv/http/domyślny $ sudo mkdir/etc/nginx/fnippets/$ sudo ln -s/srv/http/default/fragmenty/błąd_onbel_pages.conf/etc/nginx/fnipplets/error_pages.conf $ sudo ln -s/srv/http/default/fragmenty/błąd_page_content.conf/etc/nginx/fnipplets/error_pages_content.conf 

Następnie dodaj następującą konfigurację w obu http kontekst lub każdy blok serwera/vhost:

Dołącz fragmenty/Error_Pages.conf; 

Zapisz swój plik konfiguracyjny Nginx i ponownie załaduj usługę w następujący sposób:

$ sudo systemCtl Reload nginx.praca 

Przetestuj również z przeglądarki, jeśli konfiguracja działa zgodnie z przeznaczeniem. W tym przykładzie przetestowaliśmy stronę błędu 404.

Nginx niestandardowa strona błędu 404

To wszystko, co mieliśmy dla ciebie w tym przewodniku. Nginx error_page Dyrektywa umożliwia przekierowanie użytkowników do zdefiniowanej strony, zasobu lub adresu URL, gdy wystąpi błąd. Opcjonalnie pozwala na modyfikację kodu stanu HTTP w odpowiedzi na klienta. Aby uzyskać więcej informacji, przeczytaj dokumentację strony błędu Nginx.