Kif Oħloq Paġna ta 'Żball 404 Custom f'NGINX


Kull darba li NGINX tiltaqa 'ma' żball hekk kif jipprova jipproċessa t-talba ta 'klijent, jirritorna żball. Kull żball jinkludi kodiċi ta 'rispons HTTP u deskrizzjoni qasira. L-iżball normalment jintwera lil utent permezz ta 'paġna HTML sempliċi sempliċi.

Fortunatament, tista 'tikkonfigura NGINX biex turi paġni ta' żball personalizzati lill-utenti tas-sit tiegħek jew tal-applikazzjoni tal-web. Dan jista 'jinkiseb bl-użu tad-direttiva error_page ta' NGINX li tintuża biex tiddefinixxi l-URI li se jintwera għal żball speċifikat. Tista' wkoll, b'għażla tużaha biex timmodifika l-kodiċi tal-istatus HTTP fl-intestaturi tar-rispons mibgħuta lil klijent.

F'din il-gwida, aħna ser nuru kif tikkonfigura NGINX biex tuża paġni ta 'żbalji tad-dwana.

Oħloq Paġna Custom Uniku għall-iżbalji NGINX kollha

Tista 'tikkonfigura NGINX biex tuża paġna waħda ta' żball tad-dwana għall-iżbalji kollha li jirritorna lil klijent. Ibda billi toħloq il-paġna tal-iżball tiegħek. Hawn eżempju, paġna HTML sempliċi li turi l-messaġġ:

“Sorry, the page can't be loaded! Contact the site's administrator or support for assistance.” to a client.

Kampjun HTML Nginx Kodiċi tal-paġna Custom.

<!DOCTYPE html>
<html>
<head>

<style type=text/css>

* {
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

body {
	padding: 0;
	margin: 0;
}

#notfound {
	position: relative;
	height: 100vh;
}

#notfound .notfound {
	position: absolute;
	left: 50%;
	top: 50%;
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
	transform: translate(-50%, -50%);
}

.notfound {
	max-width: 520px;
	width: 100%;
	line-height: 1.4;
	text-align: center;
}

.notfound .notfound-error {
	position: relative;
	height: 200px;
	margin: 0px auto 20px;
	z-index: -1;
}

.notfound .notfound-error h1 {
	font-family: 'Montserrat', sans-serif;
	font-size: 200px;
	font-weight: 300;
	margin: 0px;
	color: #211b19;
	position: absolute;
	left: 50%;
	top: 50%;
		-webkit-transform: translate(-50%, -50%);
		-ms-transform: translate(-50%, -50%);
		transform: translate(-50%, -50%);
}

@media only screen and (max-width: 767px) {
	.notfound .notfound-error h1 {
		font-size: 148px;
	}
}

@media only screen and (max-width: 480px) {
	.notfound .notfound-error {
	height: 148px;
	margin: 0px auto 10px;
}
.notfound .notfound-error h1 {
	font-size: 120px;
	font-weight: 200px;
}
.notfound .notfound-error h2 {
	font-size: 30px;
}
.notfound a {
	padding: 7px 15px;
	font-size: 24px;
}
.h2 {
	font-size: 148px;
}
}
</style>
</head>
<body>
<div id="notfound">
	<div class="notfound">
		<h1>Sorry the page can't be loaded!</a></h1>
		<div class="notfound-error">
			<p>Contact the site's administrator or support for assistance.</p>
		</div>
	</div>
</div>
</body>
</html>

Issejvja l-fajl b'isem xieraq per eżempju error-page.html u agħlaq.

Sussegwentement, ċċaqlaq il-fajl fid-direttorju tal-għeruq tad-dokument tiegħek (/var/www/html/). Jekk id-direttorju ma jeżistix, tista' toħloqha billi tuża l-kmand mkdir, kif muri:

$ sudo mkdir -p  /var/www/html/
$ sudo cp error-page.html /var/www/html/

Imbagħad ikkonfigura NGINX biex tuża l-paġna ta 'żball tad-dwana billi tuża d-direttiva error_page. Oħloq fajl ta 'konfigurazzjoni msejjaħ custom-error-page.conf taħt /etc/nginx/snippets/ kif muri.

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

Żid magħha l-linji li ġejjin:

error_page 404 403 500 503 /error-page.html;
location = /error-page.html {
        root /var/www/html;
        internal;
}

Din il-konfigurazzjoni tikkawża redirect intern lejn l-URI/error-page.html kull darba li NGINX tiltaqa' ma' xi żbalji HTTP speċifikati 404, 403, 500, u 503. Il-kuntest tal-post jgħid lil NGINX fejn issib il-paġna tal-iżball tiegħek.

Issejvja l-fajl u agħlaqha.

Issa inkludi l-fajl fil-kuntest http sabiex il-blokki kollha tas-server jużaw il-paġna tal-iżball, fil-fajl /etc/nginx/nginx.conf:

$ sudo vim /etc/nginx/nginx.conf

Id-direttorju tal-inklużjoni jgħid lil NGINX biex jinkludi l-konfigurazzjoni fil-fajl .conf speċifikat:

include snippets/custom-error-page.conf;

Alternattivament, tista' tinkludi l-fajl għal blokk ta' server speċifiku (magħruf komunement bħala vhost), pereżempju, /etc/nginx/conf.d/mywebsite.conf. Żid id-direttiva tal-inklużjoni ta' hawn fuq fil-kuntest tas-server {}.

Issejvja l-fajl tal-konfigurazzjoni NGINX tiegħek u erġa' tagħbija s-servizz kif ġej:

$ sudo systemctl reload nginx.service

U ttestja minn browser jekk is-setup qed jaħdem tajjeb.

Oħloq Paġni tad-Dwana Differenti għal Kull Żball NGINX

Tista 'wkoll twaqqaf paġni ta' żball tad-dwana differenti għal kull żball HTTP f'NGINX. Skoprejna ġabra tajba ta 'paġni ta' żball nginx personalizzati maħluqa minn Denys Vitali fuq Github.

Biex twaqqaf ir-repożitorju fuq is-server tiegħek, mexxi l-kmandi li ġejjin:

$ sudo git clone https://github.com/denysvitali/nginx-error-pages /srv/http/default 
$ 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

Sussegwentement, żid il-konfigurazzjoni li ġejja jew fil-kuntest http tiegħek jew f'kull blokk/vhost tas-server:

include snippets/error_pages.conf;

Issejvja l-fajl tal-konfigurazzjoni NGINX tiegħek u erġa' tagħbija s-servizz kif ġej:

$ sudo systemctl reload nginx.service

Ukoll, ittestja minn browser jekk il-konfigurazzjoni qed taħdem kif maħsub. F'dan l-eżempju, ittestjajna l-paġna ta' żball 404.

Dak hu dak kollu li kellna għalik f'din il-gwida. Id-direttiva ta 'error_page ta' NGINX tippermettilek li terġa 'tidderieġi lill-utenti lejn paġna jew riżors jew URL definiti meta jseħħ żball. B'mod fakultattiv jippermetti wkoll il-modifika tal-kodiċi tal-istatus HTTP fir-rispons lil klijent. Għal aktar informazzjoni, aqra d-dokumentazzjoni tal-paġna tal-iżball nginx.