Ninu àpilẹkọ yii, Mo fẹ lati sọrọ nipa awọn ẹya meji ti NGINX Ingress ti o ni ibatan si ifihan awọn oju-iwe aṣiṣe ti ara ẹni, bakannaa awọn idiwọn ti o wa ninu wọn ati awọn ọna lati ṣiṣẹ ni ayika wọn.
1. Yiyipada awọn aiyipada backend
Nipa aiyipada, NGINX Ingress nlo ẹhin aiyipada, eyiti o ṣe iṣẹ ti o baamu. Eyi tumọ si pe nigba ti o ba beere fun Ingress kan ti n ṣalaye agbalejo ti ko si ninu awọn orisun Ingress, a gba oju-iwe atẹle pẹlu koodu esi 404 kan:
Bibẹẹkọ, siwaju ati siwaju sii nigbagbogbo awọn alabara wa pẹlu ibeere lati ṣafihan oju-iwe wọn pẹlu aami ile-iṣẹ kan ati awọn ohun elo miiran dipo boṣewa 404. Lati ṣe eyi, NGINX Ingress ni -itumọ ti ni agbara tunto default-backend-service. A ṣe titẹsi ọna kika bi ariyanjiyan si aṣayan ti orukọ kanna namespace/servicename. Ibudo iṣẹ yẹ ki o jẹ 80.
Lati ṣe eyi, o nilo lati ṣẹda adarọ-ese (imuṣiṣẹ) ati iṣẹ pẹlu ohun elo rẹ (imuse apẹẹrẹ ni YAML lati ibi ipamọ ingress-nginx), eyi ti yoo fun ni dipo afẹyinti aiyipada.
Eyi ni apejuwe kekere kan:
~$ 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>
Nitorinaa gbogbo awọn ibugbe ti a ko ṣẹda ni gbangba nipasẹ YAML pẹlu kind: Ingress, subu sinu aiyipada-pada. Ninu atokọ ti o wa loke, agbegbe yii di sadsdasdas.
2. Mimu HTTP aṣiṣe ninu awọn ohun elo lilo awọn aiyipada backend
Ipo miiran jẹ awọn ibeere ti o pari ni awọn aṣiṣe HTTP (404, 500, 502...) si ohun elo ti ko ṣe ilana iru awọn ipo (awọn oju-iwe lẹwa ti o baamu ko ṣe ipilẹṣẹ). Eyi tun le jẹ nitori ifẹ ti awọn olupilẹṣẹ lati sin awọn oju-iwe aṣiṣe kanna ni awọn ohun elo lọpọlọpọ.
Lati ṣe ọran yii ni ẹgbẹ olupin a nilo:
Tẹle awọn itọnisọna loke lati paragira nipa ẹhin aiyipada;
Ṣafikun bọtini kan si atunto nginx-ingress ConfigMap custom-http-errors, fun apẹẹrẹ, pẹlu iye 404,503 (o han ni ibamu si awọn koodu aṣiṣe ti o ni aabo nipasẹ ofin titun).
Abajade ti a nireti ti ṣaṣeyọri: nigbati ohun elo alabara n ṣiṣẹ ati gba aṣiṣe pẹlu koodu idahun 404 tabi 503, ibeere naa yoo darí laifọwọyi si ẹhin aiyipada aiyipada tuntun…
Sibẹsibẹ, nigbati o ba n ṣe agbekalẹ ohun elo kan fun afẹyinti aiyipada ati awọn aṣiṣe http-aṣa, o nilo lati ṣe akiyesi ẹya pataki kan:
!!! 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.
Otitọ ni pe nigba ti o ba ṣe atunṣe ibeere kan, awọn akọle yoo ni alaye ti o wulo pẹlu koodu esi iṣaaju ati alaye afikun (akojọ pipe wọn wa. nibi).
Eyi tumọ si pe iwọ funrararẹ gbọdọ ṣe abojuto koodu idahun ti o tọ. Eyi jẹ apẹẹrẹ. lati awọn iwe bi o ti ṣiṣẹ.
Awọn ohun elo oriṣiriṣi ni oriṣiriṣi awọn ẹhin aiyipada
Lati rii daju pe ojutu ko ni agbaye fun gbogbo iṣupọ, ṣugbọn kan si awọn ohun elo kan pato, o nilo akọkọ lati ṣayẹwo ẹya Ingress. Ti o ba baamu 0.23 tabi ju bẹẹ lọ, lo awọn asọye Ingress abinibi:
A le bori default-backend fun ti kọọkan Ingress ká lilo annotations;
A le bori custom-http-errors fun ti kọọkan Ingress ká lilo annotations.
Ni idi eyi, awọn aṣiṣe 404 ati 502 yoo darí si iṣẹ awọn oju-iwe aṣiṣe pẹlu gbogbo awọn akọle pataki.
В Awọn ẹya ti tẹlẹ ti Ingress ko ni ẹya yii (fateful ṣẹ ni 0.23). Ati pe ti o ba ni awọn ohun elo 2 ti o yatọ patapata ti o nṣiṣẹ ninu iṣupọ rẹ ati pe o fẹ lati pato iṣẹ-aṣiṣe-pada-pada ti o yatọ ati sisẹ awọn koodu aṣiṣe oriṣiriṣi fun ọkọọkan wọn, fun eyi iwọ yoo ni lati lo awọn adaṣe, eyiti a ni meji.
Ilọsi <0.23: sunmọ ọkan
Aṣayan yii rọrun. Gẹgẹbi ohun elo ti o nṣe iranṣẹ awọn oju-iwe rẹ, a ni HTML deede, eyiti ko mọ bi o ṣe le wo awọn akọle ati pada awọn koodu esi to pe. Iru ohun elo kan ti yiyi jade pẹlu Ingress lati url /error-pages, ati ninu awọn katalogi ws yoo jẹ HTML ti o pada.
Aṣayan fun ohun elo kan ti o le ṣe ilana awọn akọle ... Ati ni gbogbogbo eyi jẹ ọna ti o pe diẹ sii, yawo lati awọn aṣiṣe-http-aṣiṣe. Lilo pẹlu ọwọ (daakọ) yoo gba ọ laaye lati yi awọn eto agbaye pada.
Awọn igbesẹ jẹ bi atẹle. A ṣẹda kanna imuṣiṣẹ pẹlu ohun elo ti o le tẹtisi awọn akọle pataki ati dahun ni deede. Ṣafikun-snippet olupin kan si ohun elo Ingress pẹlu akoonu atẹle:
Bii o ti le rii, fun aṣiṣe kọọkan ti a fẹ ṣe ilana, a nilo lati ṣe ipo tiwa, nibiti gbogbo awọn akọle pataki yoo fi sii, bi ninu “abinibi” ọkan. aṣa-aṣiṣe-iwe. Ni ọna yii a le ṣẹda awọn oju-iwe aṣiṣe ti ara ẹni ti o yatọ paapaa fun awọn ipo kọọkan ati awọn olupin.