Otu esi emepụta ibe mperi 404 omenala na NGINX


Oge ọ bụla NGINX zutere njehie ka ọ na-agbalị ịhazi arịrịọ onye ahịa, ọ na-eweghachi njehie. Njehie ọ bụla gụnyere koodu nzaghachi HTTP yana nkọwa dị nkenke. A na-egosipụtakarị njehie ahụ nye onye ọrụ site na ibe HTML ndabara dị mfe.

Ọ dabara nke ọma, ị nwere ike hazie NGINX iji gosipụta ibe njehie omenala nye ndị ọrụ saịtị gị ma ọ bụ ngwa weebụ. Enwere ike nweta nke a site na iji ntuziaka NGINX error_page nke a na-eji kọwaa URI nke a ga-egosi maka njehie akọwapụtara. Ị nwekwara ike iji ya na nhọrọ iji gbanwee koodu HTTP na isi okwu nzaghachi ezigara onye ahịa.

N'ime ntuziaka a, anyị ga-egosi otu esi ahazi NGINX iji ibe njehie omenala.

Mepụta otu ibe omenala maka mperi NGINX niile

Ị nwere ike hazie NGINX iji otu ibe njehie omenala maka njehie niile ọ na-alaghachi na onye ahịa. Malite site na ịmepụta ibe njehie gị. Nke a bụ ọmụmaatụ, ibe HTML dị mfe nke na-egosipụta ozi:

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

Ihe atụ HTML Nginx koodu ibe omenala.

<!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>

Chekwaa faịlụ na aha kwesịrị ekwesị dịka ọmụmaatụ error-page.html wee mechie ya.

Ọzọ, bugharịa faịlụ ahụ na ndekọ mgbọrọgwụ akwụkwọ gị (/var/www/html/). Ọ bụrụ na ndekọ ahụ adịghị, ị nwere ike ịmepụta ya site na iji iwu mkdir, dị ka egosiri:

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

Mgbe ahụ hazie NGINX ka ọ jiri ibe njehie omenala jiri ntuziaka njehie_page. Mepụta faịlụ nhazi akpọrọ custom-error-page.conf n'okpuru /etc/nginx/snippets/ dị ka egosiri.

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

Tinye ahịrị ndị a na ya:

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

Nhazi a na-ebute redirect nke ime na URI/error-page.html oge ọ bụla NGINX na-ezute njehie HTTP ọ bụla akọwapụtara 404, 403, 500, na 503. Ọnọdụ ọnọdụ na-agwa NGINX ebe ịchọta ibe njehie gị.

Chekwaa faịlụ ma mechie ya.

Ugbu a tinye faịlụ ahụ na ọnọdụ http ka ihe mgbochi sava niile jiri ibe njehie, na faịlụ /etc/nginx/nginx.conf:

$ sudo vim /etc/nginx/nginx.conf

Akwụkwọ ndekọ ahụ gụnyere na-agwa NGINX ka ọ tinye nhazi na faịlụ .conf akọwapụtara:

include snippets/custom-error-page.conf;

N'aka nke ọzọ, ịnwere ike ịgụnye faịlụ maka otu ngọngọ nkesa (nke a na-akpọ vhost), dịka ọmụmaatụ, /etc/nginx/conf.d/mywebsite.conf. Tinye ihe a dị n'elu gụnye ntuziaka na ihe nkesa {}.

Chekwaa faịlụ nhazi NGINX gị wee bugharịa ọrụ dịka ndị a:

$ sudo systemctl reload nginx.service

Ma nwalee site na ihe nchọgharị ma ọ bụrụ na nhazi ahụ na-arụ ọrụ nke ọma.

Mepụta ibe omenala dị iche iche maka mperi NGINX ọ bụla

Ị nwekwara ike melite ibe njehie omenala dị iche iche maka njehie HTTP ọ bụla na NGINX. Anyị chọpụtara ezigbo nchịkọta ibe njehie nginx omenala nke Denys Vitali mepụtara na Github.

Ka ịtọlite ebe nchekwa na ihe nkesa gị, mee iwu ndị a:

$ 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

Na-esote, tinye nhazi ndị a na mpaghara http gị ma ọ bụ ngọngọ/vhost nkesa ọ bụla:

include snippets/error_pages.conf;

Chekwaa faịlụ nhazi NGINX gị wee bugharịa ọrụ dịka ndị a:

$ sudo systemctl reload nginx.service

Ọzọkwa, nwalee site na ihe nchọgharị ma ọ bụrụ na nhazi ahụ na-arụ ọrụ dịka echere. N'ihe atụ a, anyị nwalere ibe mperi 404.

Nke ahụ bụ ihe anyị nwere maka gị na ntuziaka a. Ntuziaka njehie_page NGINX na-enye gị ohere ibugharị ndị ọrụ gaa na ibe ma ọ bụ akụ ma ọ bụ URL akọwapụtara mgbe njehie mere. Ọ na-enye ohere maka mgbanwe koodu ọnọdụ HTTP na nzaghachi onye ahịa. Maka ozi ndị ọzọ, gụọ akwụkwọ njehie nginx.