• Digitaaliset tarvikkeet
  • Palvelin
  • Digitaalinen elämä
  • Tietosuojakäytäntö
  • Ota meihin yhteyttä
  1. Home
  2. Article
  3. VirtualServer- ja VirtualServerRoute-resurssit | NGINX...

VirtualServer- ja VirtualServerRoute-resurssit | NGINX...

Rsdaa 13/12/2021 1111

VirtualServer- ja VirtualServerRoute-resurssit

VirtualServer- ja VirtualServerRoute-resurssit ovat uusia kuormituksen tasapainotusmäärityksiä, jotka esiteltiin julkaisussa 1.5 vaihtoehtona Ingress-resurssille. Resurssit mahdollistavat käyttötapaukset, joita Ingress-resurssi ei tue, kuten liikenteen jakaminen ja edistynyt sisältöpohjainen reititys. Resurssit toteutetaan mukautetuina resursseina.

Tämä asiakirja on resurssien viitedokumentaatio. Jos haluat nähdä lisää esimerkkejä resurssien käytöstä tietyissä käyttötapauksissa, siirry GitHub-varastomme examples-of-custom-resources -kansioon.

VirtualServer-määritykset

VirtualServer-resurssi määrittää kuormituksen tasapainotusmääritykset verkkotunnukselle, kuten esimerkki.fi. Alla on esimerkki tällaisesta kokoonpanosta:

apiVersion: k8s.nginx.org/v1kind: VirtualServermetadata:name: cafespec:host: cafe.example.comtls:secret: cafe-secretupstreams:- name: teaservice: tea-svcport: 80- name: coffeeservice: coffee-svroccutes: :- polku: /teaction:pass: tea-path: /coffeeaction:pass: kahvi-polku: ~ ^/decaf/.*\\.jpg$action:pass: kahvi-polku: = /green/teaction:pass: teaFieldDescriptionTypeRequiredhostPalvelimen isäntä (verkkotunnuksen nimi). Sen on oltava kelvollinen RFC 1123:ssa määritelty aliverkkotunnus, kuten my-app tai hello.example.com. Jokerimerkkiverkkotunnuksia, kuten *.example.com, ei sallita. Isäntäarvon on oltava ainutlaatuinen kaikissa Ingress- ja VirtualServer-resursseissa. Katso myös Host and Listener Collisions.stringYestlsTLS-päätteen määritys.[tls](#virtualservertlsNopoliciesLuettelo käytännöistä.[]policyNoupstreamsLuettelo ylävirtauksista.[]upstreamNoroutesLuettelo reiteistä.[]routeNoingressClassNameMäärittää, mikä Ingress-ohjainhttp käsittelee Virtualstringverin resurssia. -snippetsAsettaa mukautetun katkelman http kontekstissa.stringNoserver-snippetsAsettaa mukautetun katkelman palvelinkontekstissa. Overrides the server-snippets ConfigMap key.stringNo

VirtualServer.TLS

Tls-kenttä määrittää TLS-määrityksen Virtuaalipalvelin. Esimerkiksi:

secret: cafe-secretredirect:enable: trueFieldDescriptionTypeRequiredsecretTLS-varmenteen ja -avaimen sisältävän salaisuuden nimi. Salaisuuden on kuuluttava samaan nimiavaruuteen kuin VirtualServer. Salaisuuden tulee olla tyyppiä kubernetes.io/tls ja sisältää avaimet nimeltä tls.crt ja tls.key, jotka sisältävät tässä kuvatun varmenteen ja yksityisen avaimen. Jos salaisuutta ei ole tai se on virheellinen, NGINX katkaisee kaikki yritykset muodostaa TLS-yhteys VirtualServer.stringNoredirect-palvelimen TLS:n uudelleenohjausmääritykset VirtualServer.tls.redirectNo

Uudelleenohjauskenttä määrittää TLS:n uudelleenohjaus VirtualServerille:

enable: truecode: 301basedOn: schemaFieldDescriptionTypeRequiredenableOttaa käyttöön TLS-uudelleenohjauksen VirtualServerille. Oletus on False.booleanNocodeUudelleenohjauksen tilakoodi. Sallitut arvot ovat: 301\ , 302\ , 307\ , 308. Oletus on 301.intNobasedOnPyynnön attribuutti, jonka NGINX arvioi lähettääkseen uudelleenohjauksen. Sallitut arvot ovat schema (pyynnön malli) tai x-forwarded-proto (pyynnön X-Forwarded-Proto-otsikko). Oletus on schema.stringNo.

Käytäntökenttä viittaa käytäntöresurssiin sen nimen ja valinnaisen nimitilan perusteella. Esimerkiksi:

FieldDescriptionTypeRequirednameKäytännön nimi. Jos käytäntöä ei ole tai se on virheellinen, NGINX vastaa virheilmoituksella 500 tilakoodilla.stringYesnamespaceKäytänteen nimitila. Jos sitä ei ole määritetty, käytetään VirtualServer-resurssin nimiavaruutta.stringNo

VirtualServer.Route

Reitti määrittää säännöt sovittaakseen asiakkaan pyynnöt toimiin, kuten pyynnön välittämiseen ylävirtaan. Esimerkiksi:

polku: /teaaction:pass: teaFieldDescriptionTypeRequiredpathReitin polku. NGINX vertaa sen pyynnön URI:hen. Mahdollisia arvoja ovat: etuliite (\ /\ , /polku\ ), tarkka vastaavuus (\ =/exact/match\ ), kirjainkoon erottelematon säännöllinen lauseke (\ ~*^/Bar.*\\.jpg\ ) tai kirjainkoon herkkä säännöllinen lauseke (\ ~^/foo.*\\.jpg\ ). Jos kyseessä on etuliite (alkua /\ ) tai tarkka vastaavuus (alkua =\ ), polku ei saa sisältää välilyöntejä, {\ , } tai ;. Säännöllisen lausekkeen osumien tapauksessa kaikki lainausmerkit " on välitettävä, eikä vastaavuus voi päättyä kenoviivaan, jossa ei ole kenoviivaa \. Polun on oltava yksilöllinen kaikkien VirtualServerin reittien polkujen joukossa. Tarkista sijaintidirektiivistä lisätietoja .stringYespoliciesLuettelo käytännöistä. Käytännöt ohittavat VirtualServerin teknisissä tiedoissa määritellyt saman tyyppiset käytännöt. Katso lisätietoja kohdasta Käytäntöjen soveltaminen.[]policyNoactionThe oletustoiminto, joka suoritetaan request.actionNosplitsOletusarvoisen jakamisen määritys liikenteen jakamista varten. sisältää vähintään 2 jakoa.[]splitNomatchesEdistyneen sisältöpohjaisen reitityksen täsmäyssäännöt. Edellyttää oletustoimintoa tai splitsejä. Vastaamattomat pyynnöt käsitellään oletustoiminnolla tai splits.matchesNorouteTämän reitin määrittävän VirtualServerRoute-resurssin nimi. VirtualServerRoute kuuluu eri nimiavaruuteen kuin VirtualServer, sinun on sisällytettävä nimiavaruuteen, esimerkiksi tea-namespace/tea.stringNoerrorPagesMuokatut vastaukset virhekoodeihin. NGINX käyttää näitä vastauksia sen sijaan, että palauttaisi virhevastaukset ylävirran palvelimilta tai NGINX:n luomia oletusvastauksia. Mukautettu vastaus voi olla uudelleenohjaus tai valmis vastaus. Esimerkiksi uudelleenohjaus toiseen URL-osoitteeseen, jos ylävirran palvelin vastasi tilakoodilla 404.[]errorPageNolocation-snippetsAsettaa mukautetun katkelman sijaintikontekstissa. Ohittaa sijaintikoodinpätkät ConfigMap key.stringNo

* – reitin tulee sisältää täsmälleen yksi seuraavista: action, splits tai route.

VirtualServerRoute-määritykset

VirtualServerRoute-resurssi määrittää reitin VirtualServerille. Se voi koostua yhdestä tai useammasta alireitistä. VirtualServerRoute on vaihtoehto Mergeable Ingress -tyypeille.

Alla olevassa esimerkissä nimitilan cafe-ns VirtualServer-kahvila määrittelee reitin polulla /coffee, joka määritellään tarkemmin nimitilan coffee-ns VirtualServerRoute-kahvissa.

Virtuaalipalvelin:

apiVersion: k8s.nginx.org/v1kind: VirtualServermetadata:name: cafennamespace: cafe-nsspec:host: cafe.example.comupstreams:- nimi: teaservice: tea-svcport: 80routes:- polku: /teaction:pass: tea- polku : /coffeeroute: coffee-ns/coffee

VirtualServerRoute:

apiVersion: k8s.nginx.org/v1kind: VirtualServerRoutemetadata:name: coffeenamespace: coffee-nsspec:host: cafe.example.comupstreams:- nimi: latteservice: latte-svcport: 80- nimi: espressoservice: espresso-80svcport polku: /kahvi/latteaction:pass: latte- polku: /kahvi/espressoaction:pass: espresso

Huomaa, että jokaisella alireitillä on oltava polku, joka alkaa samalla etuliitteellä (tässä /kahvi), joka on määritelty reitissä VirtualServeristä. Lisäksi VirtualServerRouten isäntäkoneen on oltava sama kuin VirtualServerin isäntä.

FieldDescriptionTypeRequiredhostPalvelimen isäntä (toimialueen nimi). Sen on oltava kelvollinen RFC 1123:ssa määritelty aliverkkotunnus, kuten my-app tai hello.example.com. Jokerimerkkien verkkotunnukset, kuten *.example.com, eivät ole sallittuja. On oltava sama kuin tähän resurssiin viittaavan VirtualServerin isäntä.stringYesupstreamsLuettelo ylävirtaan.[]upstreamNosubroutesAlireitittimien luettelo.[]subrouteNoingressClassNameMäärittää, minkä Ingress-ohjaimen on käsiteltävä VirtualServerRoute-resurssia. On oltava sama kuin tähän resurssiin viittaavan VirtualServerin ingressClassName.string_No

VirtualServerRoute.Subroute

Alireitti määrittelee säännöt sovittaakseen asiakkaan pyynnöt toimiin, kuten pyynnön välittämiseen ylävirtaan. Esimerkiksi:

polku: /coffeeaction:pass: coffeeFieldDescriptionTypeRequiredpathAlireitin polku. NGINX vertaa sen pyynnön URI:hen. Mahdollisia arvoja ovat: etuliite (\ /\ , /polku\ ), tarkka vastaavuus (\ =/exact/match\ ), kirjainkoon erottelematon säännöllinen lauseke (\ ~*^/Bar.*\\.jpg\ ) tai kirjainkoon herkkä säännöllinen lauseke (\ ~^/foo.*\\.jpg\ ). Jos kyseessä on etuliite, polun on aloitettava samalla polulla kuin tähän resurssiin viittaavan VirtualServerin reitin polku. Jos kyseessä on tarkka tai säännöllinen vastaavuus, polun on oltava sama kuin tähän resurssiin viittaavan VirtualServerin reitin polku. Jos kyseessä on etuliite tai tarkka vastaavuus, polku ei saa sisältää välilyöntejä, {\ , } tai ;. Jos kyseessä on säännöllinen lausekeosuma, kaikki lainausmerkit " on vaihdettava, eikä haku voi päättyä kenoviiva \. Polun on oltava yksilöllinen kaikkien VirtualServerRoute.stringYespolicies-käytäntöluettelon alireittien polkujen joukossa. Käytännöt ohittavat kaikki tähän resurssiin viittaavan VirtualServerin reitissä määritellyt käytännöt. Käytännöt myös ohittavat Sama tyyppi, joka on määritetty VirtualServerin teknisissä tiedoissa. Katso lisätietoja kohdasta Käytäntöjen soveltaminen.[]policyNoactionOletustoiminto, joka suoritetaan request.actionNosplits-oletusarvoisesti liikenteen jakamiseen. Siinä on oltava vähintään 2 jakoa.[]splitNomatchesThe matching säännöt edistyneille sisältöön perustuva reititys. Edellyttää oletustoimintoa tai splitsejä. Vastaamattomia pyyntöjä käsittelee oletustoiminto tai splits.matchesNoerrorPagesMuokatut vastaukset virhekoodeihin. NGINX käyttää näitä vastauksia sen sijaan, että palauttaisi virhevastaukset ylävirran palvelimilta tai oletusvastaukset NGINX:n luoma. Mukautettu vastaus voi olla uudelleenohjaus tai valmis vastaus. Esimerkiksi uudelleenohjaus toiseen URL-osoitteeseen, jos ylävirran palvelin vastasi tilakoodilla 404.[]errorPageNolocation-snippetsAsettaa mukautetun katkelman sijaintikontekstissa. Ohittaa VirtualServerin sijaintikoodinpätkät (jos asetettu) tai sijaintikoodinpätkät ConfigMap key.stringNo

* – alireitityksessä on oltava täsmälleen yksi seuraavista: action or splits.

VirtualServer- ja VirtualServerRouten yleiset osat

Ylävirtaan

Ylävirta määrittää reititysmäärityksen kohteen. Esimerkiksi:

nimi: teaservice: tea-svcsubselector:versio: canaryport: 80lb-method: round_robinfail-timeout: 10smax-fails: 1max-conns: 32keepalive: 32connect-timeout: 30sread-timeout: 30ssend-up-timeout: nnext "next-upstream-timeout: 5sext-upstream-yritykset: 10client-max-body-size: 2mtls:enable: true

Huomaa: WebSocket-protokollaa tuetaan ilman lisämäärityksiä.

FieldDescriptionTypeRequirednameYlävirran nimi. Sen on oltava kelvollinen RFC 1035:ssä määritelty DNS-tunniste. Esimerkiksi hello ja upstream-123 ovat kelvollisia. Nimen on oltava yksilöllinen kaikissa resurssin alkupäässä.stringYesservicePalvelun nimi. Palvelun on kuuluttava samaan nimiavaruuteen kuin resurssi. Jos palvelua ei ole olemassa, NGINX olettaa, että palvelulla ei ole nollaa päätepistettä, ja palauttaa 502-vastauksen tämän alkupään pyyntöihin. Vain NGINX Plus:ssa tuetaan myös ExternalName-tyyppisiä palveluita (tarkista edellytykset\ ).stringYessubselectorValitsee palvelun sisällä olevat podit etikettiavainten ja -arvojen avulla. Oletusarvoisesti kaikki palvelun podit on valittu. Huomautus: määritettyjen tarrojen odotetaan olevan ryhmissä, kun ne luodaan. Jos pod-tunnisteet päivitetään, sisääntuloohjain ei näe muutosta ennen kuin podien lukumäärää muutetaan.map[string]stringNouse-cluster-ipOttaa käyttöön klusterin IP-osoitteen ja palvelun portin oletuskäyttäytymisen sijaan IP ja koteloiden portti. Kun tämä kenttä on käytössä, kentillä, jotka määrittävät NGINX-käyttäytymisen useisiin ylävirran palvelimiin (kuten lb-method ja next-upstream) ei ole vaikutusta, koska sisääntuloohjain määrittää NGINX:n vain yhdellä ylävirran palvelimella, joka vastaa palveluklusteria. IP.booleanNoportPalvelun portti. Jos palvelu ei määritä kyseistä porttia, NGINX olettaa, että palvelulla ei ole nolla päätepistettä, ja palauttaa 502-vastauksen tämän ylävirran pyynnöille. Portin on oltava alueella 1..65535.uint16Yeslb-methodKuormituksen tasapainotusmenetelmä. Jos haluat käyttää round-robin-menetelmää, määritä round_robin. Oletusarvo on määritetty lb-metodissa ConfigMap key.stringNofail-timeoutAika, jonka aikana määritetyn määrän epäonnistuneita kommunikointiyrityksiä ylävirran palvelimen kanssa pitäisi tapahtua, jotta palvelin ei ole käytettävissä. Katso palvelindirektiivin parametri fail_timeout. Oletus on asetettu epäonnistumisen aikakatkaisussa ConfigMap key.stringNomax-failsEpäonnistuneiden viestintäyritysten lukumäärä ylävirran palvelimen kanssa, joiden pitäisi tapahtua epäonnistuneen aikakatkaisun asettaman keston aikana, jotta palvelin ei ole käytettävissä. Katso palvelindirektiivin parametri max_fails. Oletusarvo on asetettu max-fails ConfigMap-avaimessa.intNomax-connsSamanaikaisten aktiivisten yhteyksien enimmäismäärä ylävirran palvelimeen. Katso palvelindirektiivin parametri max_conns. Oletuksena ei ole rajaa. Huomautus: jos Keepalive-yhteydet ovat käytössä, aktiivisten ja käyttämättömien ylläpitoyhteyksien kokonaismäärä ylävirran palvelimeen voi ylittää max_conns-arvon.intNokeepaliveMäärittää välimuistin yhteyksiä varten ylävirran palvelimiin. Arvo 0 poistaa välimuistin käytöstä. Katso säilytysohje. Oletusasetus on Keepalive ConfigMap key.intNoconnect-timeout Aikakatkaisu yhteyden muodostamiselle ylävirran palvelimeen. Katso proxy_connect_timeout-direktiivi. Oletusarvo on määritetty kohdassa proxy-connect-timeout ConfigMap key.stringNoread-timeoutThe aikakatkaisu vastauksen lukemiseen ylävirran palvelimelta. Katso proxy_read_timeout-direktiivi. Oletus on määritetty proxy-read-timeout ConfigMap-avaimessa.stringNosend-timeoutThe aikakatkaisu pyynnön lähettämiselle ylävirran palvelimelle. Katso proxy_send_timeout -ohje. Oletusarvo on määritetty kohdassa proxy-send-timeout ConfigMap key.stringNonext-upstream Määrittää, missä tapauksissa pyyntö tulee välittää seuraavalle ylävirran palvelimelle. Katso proxy_next_upstream-direktiivi. Oletus on error timeout.stringNonext-upstream-timeoutAika, jonka aikana pyyntö voidaan välittää seuraavalle ylävirran palvelimelle. Katso proxy_next_upstream_timeout-ohje. Arvo 0 kytkee aikarajan pois päältä. Oletusarvo on 0.stringNonext-upstream-tries. Mahdollisten yritysten määrä pyynnön välittämiseksi seuraavalle ylävirran palvelimelle. Katso proxy_next_upstream_tries-direktiivi. Arvo 0 poistaa tämän rajan käytöstä. Oletusarvo on 0.intNoclient-max-body-sizeAsettaa asiakaspyynnön rungon suurimman sallitun koon. Katso client_max_body_size -direktiivi. Oletusasetus on Client-max-body-size ConfigMap key.stringNotlsThe TLS-määritykset Upstream.tlsNohealthCheckThe kuntotarkistusmääritykselle Upstreamille. Katso health_check-direktiivi. Huomautus: tätä ominaisuutta tuetaan vain NGINX Plus.healthcheckNoslow-start Hidas käynnistys sallii ylävirran palvelimen asteittain palauttaa painonsa nollasta nimellisarvoonsa sen jälkeen, kun se on palautettu tai tullut saataville tai kun palvelin tulee saataville tietyn ajan kuluttua sitä pidettiin poissa käytöstä. Oletuksena hidas käynnistys on poistettu käytöstä. Katso palvelindirektiivin slow_start-parametri. Huomautus: Parametria ei voi käyttää satunnais-, hash- tai ip_hash-kuormituksen tasapainotusmenetelmien kanssa, ja se jätetään huomiotta.stringNoqueueMäärittää jonon ylävirtaan.Asiakaspyyntö asetetaan jonoon, jos ylävirran palvelinta ei voida valita heti pyynnön käsittelyn aikana. Oletusarvoisesti jonoa ei ole määritetty. Huomautus: tätä ominaisuutta tuetaan vain NGINX Plus.queueNobufferingOttaa käyttöön vastausten puskuroinnin ylävirran palvelimelta. Katso proxy_buffering-direktiivi. Oletus on asetettu välityspalvelimen puskurointiin ConfigMap key.booleanNobuffersMäärittää puskurit, joita käytetään vastauksen lukemiseen ylävirran palvelimelta yksittäiselle yhteydelle.buffersNobuffer-sizeAsettaa sen puskurin koon, jota käytetään ylävirran puolelta saadun vastauksen ensimmäisen osan lukemiseen palvelin. Katso proxy_buffer_size -direktiivi. Oletusasetus on välityspalvelimen puskurin kokoinen ConfigMap key.stringNo

Upstream.

Katso lisätietoja proxy_buffers-direktiivistä.

FieldDescriptionTypeRequirednumberMäärittää puskurien määrän. Oletusasetus on asetettu välityspalvelimen puskureihin ConfigMap key.intYessizeMäärittää puskurin koon. Oletusasetus on asetettu välityspalvelimen puskureihin ConfigMap key.stringYes

Upstream.TLS

FieldDescriptionTypeRequiredenableOttaa HTTPS:n käyttöön ylävirran palvelimille lähetettäville pyynnöille. Oletusarvo on False\ , mikä tarkoittaa, että HTTP:tä käytetään.booleanNo

Upstream.Queue

Jonokenttä määrittää jonon. Asiakaspyyntö asetetaan jonoon, jos ylävirran palvelinta ei voida valita heti pyynnön käsittelyn aikana:

Katso lisätietoja jonodirektiivistä.

Huomaa: tätä ominaisuutta tuetaan vain NGINX Plusissa.

FieldDescriptionTypeRequiredsizeThe koko queue.intYestimeoutJonon aikakatkaisu. Pyyntöä ei voi asettaa jonoon aikakatkaisua pidemmäksi ajaksi. Oletusarvo on 60s.stringNo

Upstream.Healthcheck

Healthcheck määrittää aktiivisen kuntotarkastuksen. Alla olevassa esimerkissä otamme käyttöön ylävirran kuntotarkastuksen ja määritämme kaikki käytettävissä olevat parametrit:

nimi: teaservice: tea-svcport: 80healthCheck:enable: truepath: /healthzinterval: 20sjitter: 3sfails: 5passs: 5port: 8080tls:enable: trueconnect-timeout: 10sread-timeout: 10ssend-timeout:-e:10send-timeout:-e:10send-timeout. servicestatusMatch: "! 500"

Huomaa: Tätä ominaisuutta tuetaan vain NGINX Plusissa.

FieldDescriptionTypeRequiredenableOttaa käyttöön ylävirran palvelimen kuntotarkastuksen. Oletusarvo on false.booleanNopathPolku, jota käytetään kuntotarkastuspyyntöihin. Oletusarvo on /.stringNointervalKahden peräkkäisen kuntotarkastuksen välinen aika. Oletusarvo on 5s.stringNojitterAika, jonka kuluessa jokainen kuntotarkastus viivästyy satunnaisesti. Oletusarvoisesti ei ole delay.stringNofails. Tietyn ylävirran palvelimen peräkkäisten epäonnistuneiden kuntotarkastusten määrä, jonka jälkeen tämä palvelin katsotaan epäterveeksi. Oletusarvo on 1.integerNopasses. Tietyn ylävirran palvelimen peräkkäisten läpäisseiden terveystarkastusten määrä, jonka jälkeen palvelin katsotaan terveeksi. Oletusarvo on 1.integerNoportKuntotarkistuspyyntöihin käytetty portti. Oletuksena käytetään ylävirran porttia. Huomautus: toisin kuin ylävirran portti, tämä portti ei ole palveluportti, vaan pod.integerNotlsTLS-määritykset, joita käytetään kuntotarkastuspyyntöihin. Oletusarvon mukaan ylävirran palvelimen tls-kenttää käytetään.upstream.tlsNoconnect-timeout Aikakatkaisu yhteyden muodostamiseen ylävirran palvelimeen. Oletusarvoisesti käytetään ylävirran yhteysaikakatkaisua.stringNoread-timeout Aikakatkaisu ylävirran palvelimen vastauksen lukemiseen. Oletusarvoisesti käytetään ylävirran lukuaikakatkaisua.stringNosend-timeout Aikakatkaisu pyynnön lähettämiselle ylävirran palvelimelle. Oletuksena ylävirran lähetysaikakatkaisua käytetään.stringNoheadersKuntotarkistuspyyntöihin käytetyt pyyntöotsikot. NGINX Plus asettaa aina Host\ , User-Agent- ja Connection-otsikot kuntotarkastuspyyntöjä varten.[]headerNostatusMatchTerveystarkastuksen odotetun vastauksen tilakoodit. Oletusarvoisesti vastauksen tilakoodin tulee olla 2xx tai 3xx. Esimerkkejä: "200"\ , "! 500"\ , "301-303 307". Katso vastaavuusdirektiivin dokumentaatio.stringNo

Upstream.SessionCookie

SessionCookie-kenttä määrittää istunnon pysyvyyden, mikä mahdollistaa saman asiakkaan pyyntöjen välittämisen samalle ylävirran palvelimelle. Tiedot nimetystä ylävirran palvelimesta välitetään NGINX Plus:n luomassa istuntoevästeessä.

Alla olevassa esimerkissä määritämme istunnon pysyvyyden ylävirran istunnon evästeen avulla ja määritämme kaikki käytettävissä olevat parametrit:

nimi: teaservice: tea-svcport: 80sessionCookie:enable: truename: srv_idpath: /expires: 1hdomain: .example.comhttpOnly: falsesecure: true

Katso lisätietoja sticky-ohjeesta. Istuntoeväste vastaa sticky cookie -menetelmää.

Huomaa: tätä ominaisuutta tuetaan vain NGINX Plusissa.

FieldDescriptionTypeRequiredenableOttaa käyttöön istunnon pysyvyyden ylävirran palvelimen istuntoevästeen avulla. Oletus on false.booleanNonameEvästeen nimi.stringYespathPolku, jolle eväste on asetettu.stringNoexpiresAika, jonka selaimen tulee säilyttää evästettä. Voidaan asettaa erikoisarvoon max\ , mikä saa evästeen vanhentumaan 31. joulukuuta 2037 23:55:55 GMT.stringNodomainVerkkotunnus, jolle eväste on asetettu.stringNohttpOnlyLisää HttpOnly-attribuutin cookie.booleanNosecureLisää Secure-attribuutin the cookie.booleanNo

Otsikko määrittää HTTP-otsikon:

nimi: Isäntäarvo: esimerkki.fiFieldDescriptionTypeRequirednameOtsokkeen nimi.merkkijonoYesvalueOtsokkeen.merkkijono arvo.

Toiminto

Toiminto määrittää pyynnölle suoritettavan toiminnon.

Alla olevassa esimerkissä asiakaspyynnöt välitetään ylävirran kahville:

polku: /kahvi action:pass: coffeeFieldDescriptionTypeRequiredpass Lähettää pyynnöt ylävirtaan. Tämän niminen ylävirta on määritettävä kohdassa resource.stringNoredirectRedirects pyynnöt annettuun URL-osoitteeseen.action.redirectNoreturnPalauttaa ennalta määritetyn vastauksen.action.returnNoproxyLähetä pyynnöt ylävirran puolelle, jolla on mahdollisuus muokata pyyntöä/vastausta (esimerkiksi kirjoittaa URI tai muokkaa otsikoita).action.proxyNo

* – toiminnon tulee sisältää täsmälleen yksi seuraavista: pass, redirect, return tai proxy.

Action.Redirect

Uudelleenohjaustoiminto määrittää uudelleenohjauksen pyynnölle.

Alla olevassa esimerkissä asiakaspyynnöt välitetään URL-osoitteeseen http://www.nginx.com:

redirect:url: http://www.nginx.comcode: 301FieldDescriptionTypeRequiredurlURL-osoite, johon pyyntö uudelleenohjataan. Tuetut NGINX-muuttujat: $scheme\ , $http_x_forwarded_proto\ , $request_uri\ , $host. Muuttujat on suljettava kihariin aaltosulkeisiin. Esimerkki: ${host}${request_uri}.stringYescodeUudelleenohjauksen tilakoodi. Sallitut arvot ovat: 301\ , 302\ , 307\ , 308. Oletusarvo on 301.intNo

Action.Return

Palautustoiminto määrittää valmiiksi määritetyn vastauksen pyyntöön.

Alla olevassa esimerkissä NGINX vastaa ennalta määritetyllä vastauksella jokaiselle pyynnölle:

return:code: 200type: text/plainbody: "Hello World\n"FieldDescriptionTypeRequiredcodeVastauksen tilakoodi. Sallitut arvot ovat: 2XX, 4XX tai 5XX. Oletus on 200.intNotypeVastauksen MIME-tyyppi. Oletus on text/plain.stringNobodyVastauksen runko. Tukee NGINX-muuttujia*. Muuttujat tulee sulkea hakasulkeisiin. Esimerkki: Pyyntö on ${request_uri}\n.stringYes

* – Tuetut NGINX-muuttujat: $request_uri, $request_method, $request_body, $scheme, $http_, $args, $arg_, $cookie_, $host, $ pyynnön_aika, $pyynnön_pituus, $nginx_versio, $pid, $yhteys, $etäosoite, $etäportti, $aika_iso8601, $aika_paikallinen, $palvelimen_osoite, $palvelinportti, $palvelimen_nimi, $palvelinprotokolla, $yhteydet_aktiivinen, $yhteyksien_uudelleenliittäminen, $yhteydet_uudelleenliittäminen.

Action.Proxy

Välityspalvelintoiminto välittää pyynnöt ylävirran puolelle, jolloin pyyntöä/vastausta voidaan muokata (esimerkiksi kirjoittaa URI uudelleen tai muokata otsikoita).

Alla olevassa esimerkissä pyynnön URI kirjoitetaan uudelleen muotoon / ja pyyntöä ja vastauksen otsikoita muutetaan:

proxy:upstream: coffeerequestHeaders:pass: trueset:- nimi: My-Headervalue: Arvo-nimi: Asiakas-Certvalue: ${ssl_client_escaped_cert}responseHeaders:add:- nimi: Oma-Headervalue: Arvo-nimi: IC-Nginx-Versionvalue ${nginx_version}always: truehide:- x-internal-versionignore:- Expires- Set-Cookiepass:- ServerrewritePath: /FieldDescriptionTypeRequiredupstreamSen ylävirran nimi, johon pyynnöt välitetään. Tuonniminen ylävirta on määritettävä kohdassa resource.stringYesrequestHeadersPyynnön otsikot modifikaatiot.action.Proxy.RequestHeadersNoresponseHeadersVastausotsikot modifikations.action.Proxy.ResponseHeadersNorewritePathUudelleenkirjoitettu URI. Jos reittipolku on säännöllinen lauseke (alkaa ~), rewritePath voi sisältää sieppausryhmiä $1-9. Esimerkiksi $1 ensimmäiselle ryhmälle ja niin edelleen. Lisätietoja on kohdassa rewrite example.stringNo

RequestHeaders-kenttä muuttaa välityspalvelimen ylävirran palvelimen pyynnön otsikot.

FieldDescriptionTypeRequiredpass Välittää alkuperäiset pyyntöotsikot välityspalvelimelle ylävirran palvelimelle. Katso lisätietoja proxy_pass_request_header-direktiivistä. Oletus on true.boolNosetMahdollistaa kenttien uudelleenmäärittelyn tai liittämisen välityspalvelimelle ylävirran puoleisille palvelimille välitettävien pyyntöotsikoiden esittämiseen. Katso lisätietoja proxy_set_header-direktiivistä.[]headerNo

Otsikko määrittää HTTP-otsikon:

nimi: My-Headervalue: My-Value

On mahdollista ohittaa Host-otsikon oletusarvo, jonka tuloohjain asettaa arvoon $host:

nimi: Isäntäarvo: esimerkki.fiFieldDescriptionTypeRequirednameOtsokkeen nimi.merkkijonoYesvalueOtsikon arvo. Tukee NGINX-muuttujia*. Muuttujat tulee sulkea hakasulkeisiin. Esimerkki: ${scheme}.stringNo

* – Tuetut NGINX-muuttujat: $request_uri, $request_method, $request_body, $scheme, $http_, $args, $arg_, $cookie_, $host, $request_time, $request_length , $nginx_version, $pid, $yhteys, $etäosoite, $etäportti, $aika_iso8601, $aika_paikallinen, $palvelimen_osoite, $palvelinportti, $palvelimen_nimi, $palvelinprotokolla, $yhteydet_aktiivinen, $yhteydet_lukeminen, $yhteydet_kirjoittaminen,syöttäminen ssl_ciphers, $ssl_client_cert, $ssl_client_escaped_cert, $ssl_client_fingerprint, $ssl_client_i_dn, $ssl_client_i_dn_legacy, $ssl_client_raw_slnc, $ssl_slnc, $ssl_slnc, $ssl_nc dn_legacy, $ssl_client_serial, $ssl_client_v_end, $ssl_client_v_remain, $ssl_client_v_start, $ssl_client_verify, $ssl_curves, $ssl_early_data, $ssl $ssl_server_name, $ssl_session_id, $ssl_session_reused, $jwt_claim_ (vain NGINX Plus) ja $jwt_header_ (vain NGINX Plus).

ResponseHeaders-kenttä muokkaa asiakkaalle lähetetyn vastauksen otsikoita.

FieldDescriptionTypeRequiredhideYlätunnisteet, joita ei välitetä* vastauksessa asiakkaalle välityspalvelimen ylävirran palvelimelta. Katso lisätietoja proxy_hide_header-direktiivistä.boolNopassAntaa piilotettujen otsikkokenttien* välittämisen asiakkaalle välityspalvelimelta ylävirran palvelimelta. Katso proxy_pass_header-direktiivi saadaksesi lisätietoja.[]stringNoignoreEstää käytöstä tiettyjen otsikoiden** käsittelyn asiakkaalle välityspalvelimen ylävirran palvelimelta. Katso lisätietoja proxy_ignore_headers -direktiivistä.[]stringNoaddLisää otsikot asiakkaalle annettavaan vastaukseen.[]addHeaderNo

* – Piilotetut oletusotsikot ovat: Date, Server, X-Pad ja X-Accel-....

** – Seuraavat kentät voidaan jättää huomiotta: X-Accel-Redirect, X-Accel-Expires, X-Accel-Limit-Rate, X-Accel-Buffering, X-Accel-Charset, Expires, Cache-Control , Set-Cookie ja Vary.

AddHeader määrittää HTTP-otsikon, jossa on valinnainen aina -kenttä:

nimi: My-Headervalue: My-Valueaways: trueFieldDescriptionTypeRequirednameOtsokkeen nimi.merkkijonoYesvalueOtsikon arvo. Tukee NGINX-muuttujia*. Muuttujat tulee sulkea hakasulkeisiin. Esimerkki: ${scheme}.stringNoalwaysJos arvo on tosi, lisää otsikko vastauksen tilakoodista riippumatta**. Oletusarvo on epätosi. Katso lisätiedot add_header-direktiivistä.boolNo

* – Tuetut NGINX-muuttujat: $request_uri, $request_method, $request_body, $scheme, $http_, $args, $arg_, $cookie_, $host, $request_time, $request_length , $nginx_version, $pid, $yhteys, $etäosoite, $etäportti, $aika_iso8601, $aika_paikallinen, $palvelimen_osoite, $palvelinportti, $palvelimen_nimi, $palvelinprotokolla, $yhteydet_aktiivinen, $yhteydet_lukeminen, $yhteydet_kirjoittaminen,syöttäminen ssl_ciphers, $ssl_client_cert, $ssl_client_escaped_cert, $ssl_client_fingerprint, $ssl_client_i_dn, $ssl_client_i_dn_legacy, $ssl_client_raw_slnc, $ssl_slnc, $ssl_slnc, $ssl_nc dn_legacy, $ssl_client_serial, $ssl_client_v_end, $ssl_client_v_remain, $ssl_client_v_start, $ssl_client_verify, $ssl_curves, $ssl_early_data, $ssl $ssl_server_name, $ssl_session_id, $ssl_session_reused, $jwt_claim_ (vain NGINX Plus) ja $jwt_header_ (vain NGINX Plus).

** – Jos aina on epätosi, vastauksen otsikko lisätään vain, jos vastauksen tilakoodi on jokin seuraavista: 200, 201, 204, 206, 301, 302, 303, 304, 307 tai 308.

Jako

Jako määrittää toiminnon painon osana jakomäärityksiä.

Alla olevassa esimerkissä NGINX välittää 80 % pyynnöistä ylävirran coffee-v1:lle ja loput 20 % coffee-v2:lle:

splits:- paino: 80action:pass: coffee-v1- paino: 20action:pass: coffee-v2FieldDescriptionTypeRequiredweightToimen paino. On oltava välillä 1...99. Kaikkien jakojen painojen summan on oltava yhtä suuri kuin 100.intYesactionThe toiminto, joka suoritetaan request.actionYes:lle

Match

Osavuus määrittää ehtojen ja toiminnon tai jakojen välisen vastaavuuden.

Alla olevassa esimerkissä NGINX reitittää pyynnöt polulla /coffee eri ylävirtaan evästeen käyttäjän arvon perusteella:

user=john -> coffee-futureuser=bob -> coffee-deprecatedJos evästettä ei ole asetettu tai se ei ole sama kuin john tai bob, NGINX reitittää coffee-stablepath: /coffeematches:- ehdot:- eväste: käyttäjäarvo: johnaction:pass: coffee-future- ehdot:- eväste: käyttäjäarvo: bobaction:pass: coffee-deprecatedaction:pass: coffee-stable

Seuraavassa esimerkissä NGINX reitittää pyynnöt sisäänrakennetun $request_method-muuttujan arvon perusteella, joka edustaa pyynnön HTTP-menetelmää:

kaikki POST-pyynnöt -> kahvipostin muut kuin POST-pyynnöt -> coffeepath: /coffeematches:- ehdot:- muuttuja: $request_methodvalue: POSTaction:pass: coffee-postaction:pass: coffeeFieldDescriptionTypeRequiredconditionsEhtojen luettelo. Sisältää vähintään 1 ehto.[]conditionYesactionThe toiminto, joka suoritetaan pyynnölle.actionNosplitsThe jakaa määritykset liikenteen jakamista varten. On sisällettävä vähintään 2 jakoa.[]splitNo

* – vastaavuuden on sisällettävä täsmälleen yksi seuraavista: toiminta tai jaot.

Ehto

Ehto määrittelee ehdon ottelussa.

FieldDescriptionTypeRequiredheaderYlätunnisteen nimi. Täytyy sisältää aakkosnumeerisia merkkejä tai -.stringNocookieEvästeen nimi. On oltava aakkosnumeerisia merkkejä tai _.stringNoargumentArgumentin nimi. On oltava aakkosnumeerisia merkkejä tai _.stringNovariableThe NGINX-muuttujan nimi. On aloitettava $:lla. Katso luettelo tuetuista muuttujista table.stringNovalueThe arvo, jota vastaan ​​ehto vastaa. Arvon määrittely näkyy taulukon alla.merkkijonoKyllä

* – ehdon tulee sisältää täsmälleen yksi seuraavista: otsikko, eväste, argumentti tai muuttuja.

Tuetut NGINX-muuttujat: $args, $http2, $https, $remote_addr, $remote_port, $query_string, $request, $request_body, $request_uri, $request_method, $scheme. Löydät kunkin muuttujan dokumentaatiot täältä.

Arvo tukee kahdenlaisia ​​vastaavuuksia:

Kirjainkoolla ei ole merkitystä merkkijonojen vertailussa. Esimerkki:john – kirjainkoolla välitön haku, joka onnistuu merkkijonoissa, kuten john, John, JOHN.!john – john:n kirjainkoko-kannustinvastaavuuden kieltäminen, joka onnistuu merkkijonoissa, kuten bob, any, '' (tyhjä merkkijono ).Sovitus säännöllisen lausekkeen kanssa. Huomaa, että NGINX tukee säännöllisiä lausekkeita, jotka ovat yhteensopivia Perl-ohjelmointikielen (PCRE) kanssa. Esimerkki:~^yes – kirjainkoolla erottuva säännöllinen lauseke, joka vastaa mitä tahansa kyllä-alkuista merkkijonoa. Esimerkiksi: yes, yes123.!~^yes – edellisen säännöllisen lausekkeen negaatio, joka onnistuu merkkijonoissa, kuten YES, Yes123, noyes. (Negataatiomekanismi ei ole osa PCRE-syntaksia). ~*no$ – kirjainkoolla välitön säännöllinen lauseke, joka vastaa mitä tahansa merkkijonoa, jonka lopussa ei ole. Esimerkki: ei, 123ei, 123EI.

Huomaa: arvo ei saa sisältää kaksoislainausmerkkejä ("), eikä se saa päättyä kenoviivaan (\). Esimerkiksi seuraavat arvot ovat virheellisiä: some"value , jokin arvo\.

ErrorPage

ErrorPage määrittää mukautetun vastauksen reitille siinä tapauksessa, että ylävirran palvelin vastaa (tai NGINX luo) virheen tilakoodin. Mukautettu vastaus voi olla uudelleenohjaus tai valmis vastaus. Katso lisätietoja error_page-direktiivistä.

polku: /coffeeerrorPages:- koodit: [502, 503]uudelleenohjaus:koodi: 301url: https://nginx.org- koodit: [404]return:code: 200body: "Alkuperäistä resurssia ei löydy, mutta menestys!"KentäkuvausTyyppiPakollisetkooditLista of error status codes.[]intYesredirectUudelleenohjaustoiminto annetuille tilakoodeille.errorPage.RedirectNoreturnValmistettu vastaustoiminto annetuille tilakoodeille.errorPage.ReturnNo

* – virhesivulla on oltava täsmälleen yksi seuraavista: paluu tai uudelleenohjaus.

Uudelleenohjaus määrittää uudelleenohjauksen errorPagelle.

Alla olevassa esimerkissä NGINX vastaa uudelleenohjauksella, kun ylävirran palvelimen vastauksella on 404-tilakoodi.

koodit: [404]uudelleenohjaus:koodi: 301url: ${scheme}://cafe.example.com/error.htmlFieldDescriptionTypeRequiredcodeUudelleenohjauksen tilakoodi. Sallitut arvot ovat: 301\ , 302\ , 307\ , 308. Oletus on 301.intNourlURL-osoite, johon pyyntö uudelleenohjataan. Tuetut NGINX-muuttujat: $scheme\ ja $http_x_forwarded_proto. Muuttujat on suljettava kihariin aaltosulkeisiin. Esimerkki: ${scheme}.stringYes

Palautus määrittää valmiin vastauksen errorPagelle.

Alla olevassa esimerkissä NGINX vastaa valmiilla vastauksella, kun ylävirran palvelimen vastauksessa on joko 401 tai 403 tilakoodi.

koodit: [401, 403]return:code: 200type: application/jsonbody: |{\"msg\": \"Sinulla ei ole lupaa tehdä tätä\"}headers:- nimi: x-debug-original- statusesvalue: ${upstream_status}FieldDescriptionTypeRequiredcodeVastauksen tilakoodi. Oletus on alkuperäisen vastauksen tilakoodi.intNotypeVastauksen MIME-tyyppi. Oletus on text/html.stringNobodyVastauksen runko. Tuettu NGINX-muuttuja: $upstream_status \ . Muuttujat on suljettava kihariin aaltosulkeisiin. Esimerkki: ${upstream_status}.stringYesheadersResponse.errorPage.Return.HeaderNo mukautetut otsikot

Otsikko määrittää HTTP-otsikon valmiille vastaukselle errorPagessa:

nimi: x-debug-original-statussvalue: ${upstream_status}FieldDescriptionTypeRequirednameOtsokkeen nimi.merkkijonoYesvalueOtsikon arvo. Tuettu NGINX-muuttuja: $upstream_status \ . Muuttujat on suljettava kihariin aaltosulkeisiin. Esimerkki: ${upstream_status}.stringNo

VirtualServerin ja VirtualServerRouten käyttäminen

Voit käyttää tavallisia kubectl-komentoja VirtualServer- ja VirtualServerRoute-resurssien kanssa samaan tapaan kuin Ingress-resurssit.

Esimerkiksi seuraava komento luo VirtualServer-resurssin, joka on määritetty tiedostossa cafe-virtual-server.yaml, jonka nimi on cafe:

$ kubectl apply -f cafe-virtual-server.yamlvirtualserver.k8s.nginx.org "cafe" luotu

Saat resurssin suorittamalla:

$ kubectl get virtualserver cafeNAME STATE HOST IPPORTSAGEcafe Voimassa cafe.example.com 12.13.23.123[80,443] 3m

Kubectl getin ja vastaavissa komennoissa voit myös käyttää lyhytnimeä vs virtuaalipalvelimen sijaan.

Työskentely VirtualServerRoute-resurssien kanssa on analogista. Käytä kubectl-komentoissa virtualserverroutea tai lyhyttä nimeä vsr.

Katkelmien käyttäminen

Katkelmien avulla voit lisätä raaka NGINX-määrityksen NGINX-määrityksen eri yhteyksiin. Alla olevassa esimerkissä käytämme katkelmia useiden NGINX-ominaisuuksien määrittämiseen VirtualServerissä:

apiVersion: k8s.nginx.org/v1kind: VirtualServermetadata:name: cafenamespace: cafespec:http-snippets: |limit_req_zone $binary_remote_addr zone=mylimit:10m rate=1r/s;proxy_cache_path /tmpone keys_cafe.0; example.comtls:secret: cafe-secretserver-snippets: |limit_req zone=mylimit burst=20;upstreams:- name: teaservice: tea-svcport: 80- name: coffeeservice: coffee-svcport: 80routes:- polku: /tealocation- katkelmat: |proxy_cache one;proxy_cache_valid 200 10m;action:pass: tea-path: /coffeeaction:pass: coffee

Katkelmat on tarkoitettu kokeneille NGINX-käyttäjille, jotka tarvitsevat enemmän hallintaa luodun NGINX-kokoonpanon suhteen.

Alla kuvattujen haittojen vuoksi katkelmat ovat kuitenkin oletuksena pois käytöstä. Jos haluat käyttää katkelmia, aseta enable-snippets komentoriviargumentti.

Katkelmien käytön haitat:

Monimutkaisuus. Jotta voit käyttää katkelmia, sinun on ymmärrettävä NGINX-määritysprimitiivit ja otettava käyttöön oikea NGINX-määritys.Ymmärrettävä, kuinka IC luo NGINX-määrityksen, jotta katkelma ei häiritse määrityksen muita ominaisuuksia.Vähentynyt kestävyys. Väärä katkelma tekee NGINX-määrityksestä virheellisen, mikä johtaa epäonnistuneeseen uudelleenlataukseen. Tämä estää kaikki uudet kokoonpanopäivitykset, mukaan lukien päivitykset muille VirtualServer- ja VirtualServerRoute-resursseille, kunnes katkelma on korjattu.Turvallisuusvaikutukset. Katkelmat antavat pääsyn NGINX-määritysprimitiiveihin, ja sisääntuloohjain ei vahvista näitä primitiivejä. Esimerkiksi koodinpätkä voi määrittää NGINX:n palvelemaan TLS-varmenteita ja avaimia, joita käytetään TLS-päätyksessä Ingress- ja VirtualServer-resursseille.

Katkelmien käytön aikana tapahtuvien virheiden havaitsemiseksi Ingress Controller raportoi konfiguroinnin uudelleenlatausvirheet lokeissa ja VirtualServer- ja VirtualServerRoute-resurssien tapahtuma- ja tilakenttä. Lisäksi useat Prometheus-mittarit näyttävät tilastot epäonnistuneista uudelleenlatauksista – controller_nginx_last_reload_status ja controller_nginx_reload_errors_total.

Huomaa, että ajanjaksona, jolloin NGINX-kokoonpano sisältää virheellisen katkelman, NGINX jatkaa toimintaansa uusimmalla kelvollisella kokoonpanolla.

Validointi

VirtualServer- ja VirtualServerRoute-resursseille on saatavana kaksi vahvistustyyppiä:

Kubectl- ja Kubernetes API -palvelimen rakenteellinen validointi.Kattava vahvistus Ingress Controllerin toimesta.Structural Validation

VirtualServer- ja VirtualServerRouten mukautetut resurssimääritykset sisältävät rakenteellisen OpenAPI-skeeman, joka kuvaa näiden resurssien jokaisen kentän tyypin.

Jos yrität luoda (tai päivittää) resurssin, joka rikkoo rakennekaavaa (esimerkiksi käytät merkkijonoarvoa ylävirran porttikenttään), kubectl- ja Kubernetes API -palvelin hylkäävät tällaisen resurssin:

Esimerkki kubectl-tarkistuksesta:$ kubectl apply -f cafe-virtual-server.yamlerror: virhe vahvistettaessa "cafe-virtual-server.yaml": virhe tietojen vahvistamisessa: ValidationError(VirtualServer.spec.upstreams[0].port): virheellinen tyyppi for org.nginx.k8s.v1.VirtualServer.spec.upstreams.port: sai "string", odotettu "kokonaisluku"; jos päätät jättää nämä virheet huomioimatta, poista vahvistus käytöstä komennolla --validate=falseEsimerkki Kubernetes API -palvelimen validoinnista:$ kubectl apply -f cafe-virtual-server.yaml --validate=falseVirtuaalipalvelimen "kahvila" on virheellinen: []: Virheellinen arvo: map[string]interface {}{ ... }: validointivirheluettelo:spec.upstreams.port rungossa on oltava tyyppiä integer: "string"

Jos resurssia ei hylätä (se ei rikkoa rakennekaavaa), sisääntulon ohjain vahvistaa sen edelleen.

Kattava validointi

Ingress Controller vahvistaa VirtualServer- ja VirtualServerRoute-resurssien kentät. Jos resurssi on virheellinen, sisääntuloohjain hylkää sen: resurssi on edelleen olemassa klusterissa, mutta sisääntuloohjain jättää sen huomioimatta.

Voit tarkistaa, onko sisääntuloohjain onnistunut määrittämään VirtualServerin. Esimerkkikahvilassa VirtualServerissä voimme ajaa:

$ kubectl kuvaus vs kahvila. . .Events:TypeReasonAge FromMessage--------------------------NormalAddedOrUpdated16s nginx-ingress-controllerOletus-/kahvila-asetukset lisättiin tai päivitettiin

Huomaa, kuinka Tapahtumat-osio sisältää Normaali-tapahtuman, jonka syy on AddedOrUpdated ja joka ilmoittaa, että määritys on otettu käyttöön onnistuneesti.

Jos luot virheellisen resurssin, sisääntuloohjain hylkää sen ja lähettää Hylätty-tapahtuman. Jos esimerkiksi luot VirtualServer-kahvilan, jossa on kaksi ylävirtaan samannimistä teetä, saat:

$ kubectl kuvaus vs kahvila. . .Events:Type ReasonAge FromMessage---- ----------------------VaroitusRejected12s nginx-ingress-controllerVirtualServer oletus/cafe on virheellinen ja hylättiin: spec.upstreams[ 1].name: Päällekkäinen arvo: "tea"

Huomaa, kuinka tapahtumat-osio sisältää Varoitustapahtuman, jonka syy on Hylätty.

Lisäksi nämä tiedot ovat saatavilla myös VirtualServer-resurssin tilakentässä. Huomaa VirtualServerin Tila-osio:

$ kubectl kuvaus vs kahvila. . .Tila:Ulkoiset päätepisteet:Ip:12.13.23.123Portit: [80,443]VirtualServer-oletus/kahvila on virheellinen ja hylättiin: spec.upstreams[1].name: Kopioitu arvo: "tea"Syy: HylättyTila:Virheellinen

Ingress Controller vahvistaa VirtualServerRoute-resurssit samalla tavalla.

Huomaa: Jos teet olemassa olevan resurssin kelpaamattoman, sisääntuloohjain hylkää sen ja poistaa vastaavan kokoonpanon NGINX:stä.

Räätälöinti ConfigMapin avulla

Voit mukauttaa VirtualServer- ja VirtualServerRoutes-resurssien NGINX-määrityksiä ConfigMapin avulla. Useimpia ConfigMap-avaimia tuetaan seuraavin poikkeuksin:

proxy-hide-headersproxy-pass-headershstshsts-max-agehsts-include-subdomainshsts-behind-proxyredirect-to-httpsssl-redirect

PREV: Virhe "Backup Exec -työkoneen ja etäagentin välillä tapahtui tiedonsiirtovirhe" raportoidaan etäpalvelimen varmuuskopioinnin aikana.

NEXT: DB2® Connect : Etätyöasema ei pysty muodostamaan yhteyttä DB2...

Popular Articles

Hot Articles

Navigation Lists

Back to Top