ProHoster > blog > Gweinyddiaeth > Awgrymiadau a thriciau Kubernetes: tudalennau gwall personol yn NGINX Ingress
Awgrymiadau a thriciau Kubernetes: tudalennau gwall personol yn NGINX Ingress
Yn yr erthygl hon, rwyf am siarad am ddwy nodwedd NGINX Ingress sy'n ymwneud ag arddangos tudalennau gwall personol, yn ogystal Γ’'r cyfyngiadau sy'n bodoli ynddynt a ffyrdd o weithio o'u cwmpas.
1. Newid y backend rhagosodedig
Yn ddiofyn, mae NGINX Ingress yn defnyddio'r backend rhagosodedig, sy'n cyflawni'r swyddogaeth gyfatebol. Mae hyn yn golygu, wrth ofyn am Ingress yn nodi gwesteiwr nad yw yn adnoddau Ingress, ein bod yn derbyn y dudalen ganlynol gyda chod ymateb 404:
Fodd bynnag, yn amlach na pheidio mae ein cleientiaid yn dod Γ’ chais i ddangos eu tudalen gyda logo corfforaethol ac amwynderau eraill yn lle'r safon 404. I wneud hyn, mae gan NGINX Ingress gallu adeiledig ailddiffinio default-backend-service. Rydym yn trosglwyddo'r cofnod fformat fel dadl i'r opsiwn o'r un enw namespace/servicename. Dylai porthladd y gwasanaeth fod yn 80.
I wneud hyn, mae angen i chi greu eich pod (defnydd) a'ch gwasanaeth eich hun gyda'ch cais (gweithredu enghreifftiol yn YAML o'r ystorfa ingress-nginx), a roddir yn lle'r backend rhagosodedig.
Dyma enghraifft fach:
~$ curl -i -XGET http://sadsdasdas.kube-cloud.my/
HTTP/1.1 404 Not Found
Date: Mon, 11 Mar 2019 05:38:15 GMT
Content-Type: */*
Transfer-Encoding: chunked
Connection: keep-alive
<span>The page you're looking for could not be found.</span>
Felly pob parth nad yw'n cael ei greu yn benodol trwy YAML gyda kind: Ingress, disgyn i mewn i default-backend. Yn y rhestriad uchod, daeth y parth hwn sadsdasdas.
2. Trin gwallau HTTP yn y cais gan ddefnyddio'r backend rhagosodedig
Sefyllfa arall yw ceisiadau sy'n gorffen Γ’ gwallau HTTP (404, 500, 502...) i raglen nad yw'n prosesu sefyllfaoedd o'r fath (ni chynhyrchir y tudalennau hardd cyfatebol). Gall hyn hefyd fod oherwydd awydd datblygwyr i wasanaethu'r un tudalennau gwall mewn cymwysiadau lluosog.
I weithredu'r achos hwn ar ochr y gweinydd mae angen:
Dilynwch y cyfarwyddiadau uchod o'r paragraff am backend rhagosodedig;
Ychwanegu allwedd i'r ffurfwedd nginx-ingress ConfigMap custom-http-errors, er enghraifft, gyda'r gwerth 404,503 (yn amlwg yn cyfateb i'r codau gwall a gwmpesir gan y rheol newydd).
Mae'r canlyniad disgwyliedig wedi'i gyflawni: pan fydd y rhaglen cleient yn rhedeg ac yn derbyn gwall gyda chod ymateb 404 neu 503, bydd y cais yn cael ei ailgyfeirio'n awtomatig i'r backend diofyn newydd ...
Fodd bynnag, wrth ddatblygu cais ar gyfer backend diofyn a gwallau-http-arfer, mae angen i chi ystyried nodwedd bwysig:
!!! Important The custom backend is expected to return the correct HTTP status code instead of 200. NGINX does not change the response from the custom default backend.
Y ffaith yw pan fydd cais yn cael ei ailgyfeirio, bydd y penawdau yn cynnwys gwybodaeth ddefnyddiol gyda'r cod ymateb blaenorol a gwybodaeth ychwanegol (mae eu rhestr gyflawn ar gael yma).
Mae hyn yn golygu bod yn rhaid i chi eich hun gofalu am y cod ymateb cywir. Dyma enghraifft o'r ddogfennaeth sut mae'n gweithio.
Mae gan wahanol gymwysiadau Γ΄l-daliadau diofyn gwahanol
Er mwyn sicrhau nad yw'r datrysiad yn fyd-eang ar gyfer y clwstwr cyfan, ond yn berthnasol i gymwysiadau penodol yn unig, yn gyntaf mae angen i chi wirio'r fersiwn Ingress. Os yw'n cyfateb 0.23 neu uwch, defnyddiwch yr anodiadau Ingress brodorol:
Yn yr achos hwn, bydd gwallau 404 a 502 yn cael eu hailgyfeirio i'r gwasanaeth tudalennau gwall gyda'r holl benawdau angenrheidiol.
Π nid oedd gan fersiynau blaenorol o Ingress y nodwedd hon (ymrwymiad tyngedfennol am 0.23). Ac os oes gennych 2 raglen hollol wahanol yn rhedeg yn eich clwstwr a'ch bod am nodi gwasanaeth Γ΄l-gefn rhagosodedig gwahanol a phrosesu gwahanol godau gwall ar gyfer pob un ohonynt, ar gyfer hyn bydd yn rhaid i chi ddefnyddio atebion, ac mae gennym ddau ohonynt.
Mynd i mewn < 0.23: dynesu at un
Mae'r opsiwn hwn yn symlach. Fel cymhwysiad sy'n gwasanaethu ei dudalennau, mae gennym HTML rheolaidd, nad yw'n gwybod sut i edrych ar y penawdau a dychwelyd y codau ymateb cywir. Mae cais o'r fath yn cael ei gyflwyno gydag Ingress o'r url /error-pages, ac yn y catalog ws fydd yr HTML a ddychwelwyd.
Opsiwn ar gyfer cymhwysiad sy'n gallu prosesu penawdau... Ac yn gyffredinol mae hon yn ffordd fwy cywir, wedi'i benthyca o custom-http-errors. Bydd ei ddefnyddio Γ’ llaw (copΓ―o) yn caniatΓ‘u ichi beidio Γ’ newid gosodiadau byd-eang.
Mae'r camau fel a ganlyn. Rydym yn creu yr un defnydd gyda chymhwysiad sy'n gallu gwrando ar y penawdau angenrheidiol ac ymateb yn gywir. Ychwanegu pyt gweinydd i raglen Ingress gyda'r cynnwys canlynol:
Fel y gallwch weld, ar gyfer pob gwall yr ydym am ei brosesu, mae angen i ni wneud ein lleoliad ein hunain, lle bydd yr holl benawdau angenrheidiol yn cael eu mewnosod, fel yn yr un βbrodorolβ. arfer-gwall-tudalennau. Fel hyn gallwn greu gwahanol dudalennau gwall personol hyd yn oed ar gyfer lleoliadau unigol a gweinyddwyr.