ProHoster > blog > Amministrazzjoni > Suġġerimenti u tricks ta' Kubernetes: paġni ta' żbalji personalizzati f'NGINX Ingress
Suġġerimenti u tricks ta' Kubernetes: paġni ta' żbalji personalizzati f'NGINX Ingress
F'dan l-artikolu, irrid nitkellem dwar żewġ karatteristiċi ta 'NGINX Ingress relatati mal-wiri ta' paġni ta 'żball personalizzati, kif ukoll il-limitazzjonijiet li jeżistu fihom u modi kif taħdem madwarhom.
1. Nibdlu l-backend default
B'mod awtomatiku, NGINX Ingress juża l-backend default, li jwettaq il-funzjoni korrispondenti. Dan ifisser li meta nitolbu Ingress li jispeċifika host li mhuwiex fir-riżorsi Ingress, nirċievu l-paġna li ġejja b'kodiċi ta 'rispons 404:
Madankollu, aktar u aktar spiss il-klijenti tagħna jiġu b'talba biex juru l-paġna tagħhom b'logo korporattiv u kumditajiet oħra minflok l-istandard 404. Biex tagħmel dan, NGINX Ingress għandu kapaċità mibnija tiddefinixxi mill-ġdid default-backend-service. Aħna ngħaddu l-entrata tal-format bħala argument għall-għażla tal-istess isem namespace/servicename. Il-port tas-servizz għandu jkun 80.
Biex tagħmel dan, trid toħloq il-pod (skjerament) u s-servizz tiegħek stess bl-applikazzjoni tiegħek (eżempju ta' implimentazzjoni f'YAML mir-repożitorju ingress-nginx), li se jingħata minflok il-backend default.
Hawn illustrazzjoni żgħira:
~$ 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>
Allura l-oqsma kollha li mhumiex maħluqa espliċitament permezz ta 'YAML ma' kind: Ingress, jaqgħu fil default-backend. Fil-lista ta 'hawn fuq, dan id-dominju sar sadsdasdas.
2. Immaniġġjar ta 'żbalji HTTP fl-applikazzjoni billi tuża l-backend default
Sitwazzjoni oħra hija talbiet li jispiċċaw fi żbalji HTTP (404, 500, 502...) għal applikazzjoni li ma tipproċessax sitwazzjonijiet bħal dawn (il-paġni sbieħ korrispondenti mhumiex iġġenerati). Dan jista 'jkun ukoll minħabba x-xewqa tal-iżviluppaturi li jservu l-istess paġni ta' żball f'applikazzjonijiet multipli.
Biex nimplimentaw dan il-każ fuq in-naħa tas-server għandna bżonn:
Segwi l-istruzzjonijiet hawn fuq mill-paragrafu dwar backend default;
Żid ċavetta għall-konfigurazzjoni nginx-ingress ConfigMap custom-http-errors, per eżempju, bil-valur 404,503 (ovvjament jikkorrispondi għall-kodiċijiet ta 'żball li huma koperti mir-regola l-ġdida).
Inkiseb ir-riżultat mistenni: meta l-applikazzjoni tal-klijent tkun qed taħdem u tirċievi żball bil-kodiċi tar-rispons 404 jew 503, it-talba tiġi ridiretta awtomatikament lejn il-backend default ġdid...
Madankollu, meta tiżviluppa applikazzjoni għal backend default u custom-http-errors, trid tqis karatteristika importanti:
!!! 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.
Il-fatt hu li meta talba tiġi ridirezzjonata, l-intestaturi jkun fihom informazzjoni utli bil-kodiċi tar-rispons preċedenti u informazzjoni addizzjonali (il-lista sħiħa tagħhom hija disponibbli hawn).
Dan ifisser li inti stess trid ħu ħsieb il-kodiċi tar-rispons korrett. Hawn hu eżempju. mid-dokumentazzjoni kif taħdem.
Applikazzjonijiet differenti għandhom backends default differenti
Biex tiżgura li s-soluzzjoni mhix globali għall-cluster kollu, iżda tapplika biss għal applikazzjonijiet speċifiċi, l-ewwel trid tiċċekkja l-verżjoni Ingress. Jekk jaqbel 0.23 jew ogħla, uża l-annotazzjonijiet tad-dħul indiġeni:
F'dan il-każ, l-iżbalji 404 u 502 jiġu ridiretti lejn is-servizz tal-paġni tal-iżbalji bl-intestaturi kollha meħtieġa.
В verżjonijiet preċedenti ta 'Ingress ma kellhomx din il-karatteristika (impenn fatali f'0.23). U jekk għandek 2 applikazzjonijiet kompletament differenti li qed jaħdmu fil-cluster tiegħek u trid tispeċifika servizz default-backend differenti u pproċessar ta 'kodiċi ta' żball differenti għal kull wieħed minnhom, għal dan ser ikollok tuża workarounds, li minnhom għandna tnejn.
Dħul < 0.23: approċċ wieħed
Din l-għażla hija aktar sempliċi. Bħala applikazzjoni li sservi l-paġni tagħha, għandna HTML regolari, li ma jafx kif iħares lejn l-intestaturi u jirritorna l-kodiċijiet ta 'rispons korretti. Applikazzjoni bħal din titħaddem b'Ingress mill-url /error-pages, u fil-katalgu ws se jkun l-HTML ritornat.
Għażla għal applikazzjoni li tista 'tipproċessa headers... U b'mod ġenerali dan huwa mod aktar korrett, misluf minn custom-http-errors. L-użu manwalment (ikkupjar) jippermettilek li ma tibdelx is-settings globali.
Il-passi huma kif ġej. Noħolqu istess skjerament b’applikazzjoni li tista’ tisma’ l-aħbarijiet meħtieġa u tirrispondi b’mod korrett. Żid server-snippet mal-applikazzjoni Ingress bil-kontenut li ġej:
Kif tistgħu taraw, għal kull żball li rridu nipproċessaw, irridu nagħmlu l-post tagħna stess, fejn jiddaħħlu l-headers kollha meħtieġa, bħal f'dak "nattiv". paġni ta' żball tad-dwana. Dan il-mod nistgħu noħolqu paġni ta 'żball personalizzati differenti anke għal postijiet u servers individwali.