Reverse proxy­ser­ve­re bruges som en mel­lem­lig­gen­de net­værks­kom­po­nent til at sikre servere for of­fent­li­ge on­li­ne­tje­ne­ster. De modtager ser­ve­ran­mod­nin­ger på vegne af serverne og vi­de­re­sen­der dem til brugerne.

Hvordan fungerer en reverse proxy?

En proxy­ser­ver fungerer i bund og grund som en kom­mu­ni­ka­tions­for­mid­ler i netværket, der modtager an­mod­nin­ger og vi­de­re­sen­der dem til en målserver på vegne af klienten. En reverse proxy er placeret mellem klienter (f.eks. web­brow­se­re) og backend-servere (f.eks. web­ser­ve­re, da­ta­ba­se­ser­ve­re eller ap­pli­ka­tio­ner). Den aktiveres, når der frem­sæt­tes en kli­en­tan­mod­ning, og afgør, om og til hvilken intern ser­ver­kom­po­nent an­mod­nin­gen skal dirigeres. Processen følger disse fire grund­læg­gen­de trin:

  1. Mod­ta­gel­se af kli­en­tan­mod­nin­gen: Reverse-proxyen ac­cep­te­rer HTTP-, HTTPS- eller andre an­mod­nin­ger, såsom FTP eller WebSocket.
  2. Analyse af an­mod­nin­gen: Proxyen un­der­sø­ger, om an­mod­nin­gen er gyldig, om den udgør en sik­ker­heds­ri­si­ko, og om der findes en version i cachen.
  3. Vi­de­re­sen­del­se til den relevante server: Hvis an­mod­nin­gen ikke kan besvares fra cachen, sender reverse-proxyen an­mod­nin­gen til en af de interne servere.
  4. Svar til klienten: Den omvendte proxy modtager svaret fra backend-serveren, behandler det yder­li­ge­re, hvis det er nød­ven­digt (f.eks. kryp­te­ring), og sender det tilbage til den anmodende klient.
Billede: Schematic representation of a reverse proxy
Reverse proxy and web server are located in a shared internal network

Hvad er for­skel­len i forhold til forward-proxyer?

Mens reverse-proxyer, som nævnt tidligere, placeres mellem klienter og backend-servere, placeres forward-proxyer mellem klienter og in­ter­net­tet. En forward-proxy vi­de­re­sen­der alle kli­en­tan­mod­nin­ger og sender dem med sin egen af­sen­de­radres­se til mål­ser­ver­ne på in­ter­net­tet. Ser­ver­re­spon­ser når også først frem til proxyen, før de di­stri­bu­e­res til de respek­ti­ve klient-enheder. Disse forbliver anonyme – medmindre der er tale om en trans­pa­rent proxy. Mens en forward-proxy beskytter klienter i det interne netværk mod eksterne trusler, sikrer en reverse-proxy servere i et of­fent­ligt netværk og optimerer deres til­gæn­ge­lig­hed.

Mens reverse-proxyer byder på klare fordele for ser­ver­struk­tu­rer gennem funk­tio­ner som be­last­nings­for­de­ling og for­skel­li­ge sik­ker­heds­funk­tio­ner, ligger styrken ved forward-proxyer i be­skyt­tel­sen af kli­en­ter­ne.

Billede: Schematic representation of a forward proxy
Unlike a reverse proxy, the forward proxy is located in a shared internal network with the clients.

An­ven­del­ses­om­rå­der for reverse-proxyer

Ved at samle kli­en­tan­mod­nin­ger kan reverse-proxy­ser­ve­re udøve stor kontrol over den indgående trafik. Dette gør det blandt andet muligt at stille flere servere til rådighed under samme URL, fordele an­mod­nin­ger­ne jævnt på for­skel­li­ge servere og frem­skyn­de hent­nin­gen af data gennem caching. Nedenfor er de vigtigste an­ven­del­ses­om­rå­der for en reverse-proxy­ser­ver.

Last­for­de­ling

En reverse proxy, der placeres foran, gør det muligt at forbinde en URL med for­skel­li­ge servere i det interne netværk. Dette fordeler indgående an­mod­nin­ger på flere servere. En sådan be­last­nings­for­de­ling for­hin­drer over­be­last­ning af de enkelte systemer og sikrer kon­ti­nu­i­tet i tilfælde af nedbrud. Hvis en server ikke kan nås på grund af hardware- eller softwa­re­fejl, om­for­de­ler proxyens be­last­nings­for­de­lings­mo­dul de indgående an­mod­nin­ger til de re­ste­ren­de servere. Dette sikrer, at ser­vertje­ne­ster­ne forbliver til­gæn­ge­li­ge, selv i tilfælde af nedbrud.

Caching

For at gøre ser­vertje­ne­ster­ne hurtigere kan reverse-proxyer tilbyde en funktion, der gør det muligt at gemme ofte anmodet indhold i cachen. Denne ca­chelag­ring gør det muligt for proxy­ser­ve­ren at besvare gentagne an­mod­nin­ger helt eller delvist på egen hånd. Statisk indhold som billeder eller CSS-sty­les­he­ets gemmes i proxyens cache. Som følge heraf behøver der kun hentes meget lidt eller slet ingen data fra backend-serveren, hvilket væ­sent­ligt frem­skyn­der adgangen til web­tje­ne­ster. Da hurtigt skiftende indhold imid­ler­tid ikke altid sikrer, at proxyens cache har den aktuelle version, er der en risiko for, at der leveres forældede op­lys­nin­ger til de anmodende klienter.

Be­skyt­tel­ses- og sik­ker­heds­for­an­stalt­nin­ger

En reverse proxy fungerer som en slags skjold for backend-serverne og kan i denne rolle tilbyde for­skel­li­ge sik­ker­heds­funk­tio­ner:

  • DDoS-be­skyt­tel­se: Reverse proxy­ser­ve­re kan opdage og blokere mistæn­ke­lig eller usæd­van­lig høj trafik under DDoS-angreb, inden den når backend-serverne.
  • Web Ap­pli­ca­tion Firewall (WAF): Mange reverse proxies in­klu­de­rer en WAF, der kan filtrere ond­s­in­de­de an­mod­nin­ger som SQL-injek­tio­ner eller Cross-Site Scripting (XSS).
  • IP-whi­te­li­sting og bla­ck­li­sting: Reverse proxyen kan blokere bestemte IP-adresser eller kun tillade for­bin­del­ser fra spe­ci­fik­ke netværk, hvis det er nød­ven­digt.
  • Skjulning af backend-servere: Den reverse proxy for­hin­drer, at backend-ser­ve­re­nes interne IP-adresser er synlige for of­fent­lig­he­den, hvilket gør angreb sværere.

Kryp­te­ring

For at mindske be­last­nin­gen på backend-serverne kan der også anvendes reverse proxy-servere til kryp­te­ring. I dette tilfælde de­kryp­te­rer den klientens SSL/TLS-anmodning (f.eks. en HTTPS-for­bin­del­se), vi­de­re­sen­der de de­kryp­te­re­de data til backend-serverne og sender det til­hø­ren­de svar tilbage til klienten i krypteret form. Den interne kom­mu­ni­ka­tion kan foregå enten krypteret eller ukryp­te­ret.

Ano­ny­mi­se­ring

En reverse proxy kan også bruges til at ano­ny­mi­se­re trafikken ved at skjule kli­en­ter­nes op­rin­de­li­ge IP-adresser eller erstatte dem med sine egne IP-adresser. Dette bidrager til at beskytte kli­en­ter­nes privatliv, da de faktiske IP-adresser ikke vil være synlige i log­fi­ler­ne. Derudover muliggør dette geo­gra­fisk be­last­nings­for­de­ling: an­mod­nin­ger kan dirigeres til den nærmeste server afhængigt af brugerens geo­gra­fi­ske placering.

Kom­pri­me­ring

Med den rette software kan en reverse proxy bruges til at kom­pri­me­re indgående og udgående data. Et populært program til kom­pri­me­ring af hjem­mesi­der er gzip, som ofte bruges sammen med web­ser­ver­ne Apache eller NGINX.

Gå til ho­ved­me­nu­en