Miten sovellusyhdyskäytävä toimii

  • 16.11.2019
  • 4 minuuttia aikaa
    • a
    • j
    • D
    • s
    • v
    • +2

Tässä artikkelissa kerrotaan, miten sovellusyhdyskäytävä ottaa vastaan saapuvat pyynnöt ja reitittää ne backendiin.

Miten sovellusyhdyskäytävä ottaa pyynnön vastaan

Miten sovellusyhdyskäytävä ottaa pyynnön vastaan

  1. Ennen kuin asiakas lähettää pyynnön sovellusyhdyskäytävälle, se ratkaisee sovellusyhdyskäytävän verkkotunnuksen nimen DNS-palvelimen (Domain Name System) avulla. Azure hallitsee DNS-merkintää, koska kaikki sovellusyhdyskäytävät ovat azure.com-verkkotunnuksessa.

  2. Azure DNS palauttaa asiakkaalle IP-osoitteen, joka on sovellusyhdyskäytävän etusivun IP-osoite.

  3. Sovellusyhdyskäytävä ottaa vastaan saapuvan liikenteen yhdellä tai useammalla kuuntelijalla. Kuuntelija on looginen kokonaisuus, joka tarkistaa yhteyspyynnöt. Se konfiguroidaan etupään IP-osoitteella, protokollalla ja porttinumerolla asiakkailta sovellusyhdyskäytävään tulevia yhteyksiä varten.

  4. Jos käytössä on web-sovellusten palomuuri (WAF), sovellusyhdyskäytävä tarkistaa pyyntöjen otsikot ja rungon, jos sellainen on olemassa, WAF:n sääntöjen perusteella. Tällä toiminnolla määritetään, onko pyyntö kelvollinen pyyntö vai tietoturvauhka. Jos pyyntö on kelvollinen, se ohjataan backendiin. Jos pyyntö ei ole kelvollinen ja WAF on Prevention-tilassa, se estetään turvallisuusuhkana. Jos se on Detection-tilassa, pyyntö arvioidaan ja kirjataan lokiin, mutta se ohjataan silti backend-palvelimelle.

Azure Application Gatewaya voidaan käyttää sisäisenä sovellusten kuorman tasaajana tai internetiin suuntautuvana sovellusten kuorman tasaajana. Internetiin suuntautuva sovellusyhdyskäytävä käyttää julkisia IP-osoitteita. Internetiin suuntautuvan sovellusyhdyskäytävän DNS-nimi on julkisesti ratkaistavissa sen julkiseen IP-osoitteeseen. Tämän vuoksi internetiin suuntautuvat sovellusyhdyskäytävät voivat reitittää asiakaspyyntöjä internetistä.

Sisäiset sovellusyhdyskäytävät käyttävät vain yksityisiä IP-osoitteita. Jos käytät mukautettua tai yksityistä DNS-vyöhykettä, verkkotunnuksen nimen on oltava sisäisesti ratkaistavissa sovellusyhdyskäytävän yksityiseen IP-osoitteeseen. Siksi sisäiset kuormituksen tasaajat voivat reitittää pyyntöjä vain sellaisilta asiakkailta, joilla on pääsy sovellusyhdyskäytävän virtuaaliverkkoon.

Miten sovellusyhdyskäytävä reitittää pyynnön

Jos pyyntö on kelvollinen eikä WAF ole estänyt sitä, sovellusyhdyskäytävä arvioi kuuntelijaan liitetyn pyynnön reitityssäännön. Tämä toiminto määrittää, mihin backend-pooliin pyyntö ohjataan.

Sovellusyhdyskäytävä määrittää pyynnön reitityssäännön perusteella, ohjataanko kaikki kuuntelijan pyynnöt tiettyyn backend-pooliin, ohjataanko pyynnöt eri backend-pooleihin URL-polun perusteella vai ohjataanko pyynnöt toiseen porttiin tai ulkoiseen sivustoon.

Huomautus

Säännöt käsitellään siinä järjestyksessä, jossa ne on lueteltu v1 SKU:n portaalissa.

Kun sovellusyhdyskäytävä valitsee backend-poolin, se lähettää pyynnön yhdelle poolin terveistä backend-palvelimista (y.y.y.y). Palvelimen terveys määritetään terveysluotaimella. Jos backend-poolissa on useita palvelimia, sovellusyhdyskäytävä käyttää round-robin-algoritmia reitittääkseen pyynnöt terveiden palvelimien välillä. Tämä tasaa pyyntöjen kuormitusta palvelimilla.

Kun sovellusyhdyskäytävä määrittää taustapalvelimen, se avaa uuden TCP-istunnon taustapalvelimen kanssa HTTP-asetusten perusteella. HTTP-asetuksissa määritetään protokolla, portti ja muut reititykseen liittyvät asetukset, joita tarvitaan uuden istunnon muodostamiseen backend-palvelimen kanssa.

HTTP-asetuksissa käytetyt portti ja protokolla määrittävät, onko sovellusyhdyskäytävän ja backend-palvelimien välinen liikenne salattua (ja siten toteutettu päästä päähän TLS) vai salaamatonta.

Kun sovellusyhdyskäytävä lähettää alkuperäisen pyynnön taustapalvelimelle, se noudattaa HTTP-asetuksissa tehtyjä mukautettuja määrityksiä, jotka liittyvät isäntänimen, polun ja protokollan ohittamiseen. Tämä toiminto ylläpitää evästeisiin perustuvaa istuntosidonnaisuutta, yhteyden tyhjennystä, isäntänimen valintaa backend-palvelimelta ja niin edelleen.

Huomautus

Jos backend-palvelinpooli:

  • On julkinen päätepiste, sovellusyhdyskäytävä käyttää julkista IP-osoitettaan etupäässä palvelimen tavoittamiseen. Jos etupään julkista IP-osoitetta ei ole, sellainen osoitetaan lähtevälle ulkoiselle yhteydelle.
  • Sisältää sisäisesti ratkaistavan FQDN:n tai yksityisen IP-osoitteen, sovellusyhdyskäytävä reitittää pyynnön backend-palvelimelle käyttämällä instanssinsa yksityisiä IP-osoitteita.
  • Sisältää ulkoisen päätepisteen tai ulkoisesti ratkaistavan FQDN:n, sovellusyhdyskäytävä reitittää pyynnön backend-palvelimelle sen etupään julkista IP-osoitetta käyttämällä. DNS-resoluutio perustuu yksityiseen DNS-vyöhykkeeseen tai mukautettuun DNS-palvelimeen, jos se on määritetty, tai se käyttää Azuren tarjoamaa oletus-DNS:ää. Jos etusivun julkista IP-osoitetta ei ole, sellainen osoitetaan lähtevälle ulkoiselle yhteydelle.

Muutokset pyyntöön

Sovellusyhdyskäytävä lisää kaikkiin pyyntöihin neljä lisäotsikkoa, ennen kuin se välittää pyynnöt backendiin. Nämä otsikot ovat x-forwarded-for, x-forwarded-proto, x-forwarded-port ja x-original-host. x-forwarded-for-otsakkeen muoto on pilkulla erotettu luettelo IP:portti.

x-forwarded-proto -otsakkeen kelvolliset arvot ovat HTTP tai HTTPS. X-forwarded-port määrittää portin, josta pyyntö saapui sovellusyhdyskäytävälle. X-original-host-otsake sisältää alkuperäisen host-otsakkeen, jolla pyyntö saapui. Tämä otsake on hyödyllinen Azure-verkkosivuston integroinnissa, jossa saapuvaa host-otsikkoa muutetaan ennen kuin liikenne ohjataan backendiin. Jos session affinity on otettu käyttöön vaihtoehtona, se lisää yhdyskäytävän hallinnoiman affinity-evästeen.

Sovellusyhdyskäytävän voi määrittää muokkaamaan pyynnön ja vastauksen otsikoita ja URL-osoitetta käyttämällä Rewrite HTTP headers and URL -asetusta tai muokkaamaan URI-polkua käyttämällä path-override-asetusta. Ellei sitä ole määritetty, kaikki saapuvat pyynnöt välitetään kuitenkin backendiin.

Lue lisää sovellusyhdyskäytävän komponenteista

.

Jätä kommentti