8 geriausi atvirojo kodo atvirkštiniai tarpiniai serveriai, skirti „Linux“


Atvirkštinis tarpinis serveris yra tarpinio serverio tipas, kuris yra dislokuotas tarp klientų ir vidinių/pradinių serverių, pavyzdžiui, HTTP serveris, pvz., NGINX, Apache ir kt., Arba programų serveriai, parašyti „Nodejs“, „Python“, „Java“, „Ruby“. , PHP ir daugelį kitų programavimo kalbų.

Tai yra šliuzas arba tarpinis serveris, priimantis kliento užklausą, perduodantis ją vienam ar daugiau vidinių serverių ir vėliau paimantis atsakymą iš serverio ir perduodamas atgal klientui, tokiu būdu atrodant taip, tarsi turinys kilo iš paties atvirkštinio tarpinio serverio.

Paprastai atvirkštinis tarpinis serveris yra į vidų nukreiptas tarpinis serveris, naudojamas kaip „front-end“, norint kontroliuoti ir apsaugoti prieigą prie privačių tinklų serverių: jis paprastai diegiamas už tinklo užkardos.

Tai padeda galutiniams serveriams pasiekti anonimiškumą ir pagerinti jų saugumą. IT infrastruktūroje atvirkštinis tarpinis serveris taip pat gali veikti kaip programos užkarda, apkrovos balansatorius, TLS terminatorius, žiniatinklio greitintuvas (talpinant statinį ir dinaminį turinį) ir daug daugiau.

Šiame straipsnyje apžvelgsime 8 geriausius atvirojo kodo atvirkštinius tarpinius serverius, kuriuos galite naudoti „Linux“ sistemoje.

1. HAProksija

„HAProxy“ („HAProxy“, kuris reiškia „High Available Proxy“) - nemokama, atviro kodo, labai greita, patikima ir aukščiausio lygio apkrovos balansavimo ir tarpinio palaikymo programinė įranga, skirta TCP ir HTTP pagrįstoms programoms, sukurta aukštam prieinamumui.

„HAProxy“ yra HTTP atvirkštinis tarpinis serveris, TCP tarpinis serveris ir normalizatorius, SSL/TLS terminatorius/iniciatorius/iškrovėjas, talpyklos tarpinis serveris, HTTP glaudinimo iškrovėjas, eismo reguliatorius, turinio jungiklis, „FastCGI“ šliuzas ir kt. Tai taip pat apsauga nuo DDoS ir piktnaudžiavimo paslaugomis.

Jį varo įvykių valdomas, neužblokuojantis variklis, derinantis labai greitą įvesties/išvesties sluoksnį su prioritetiniu, daugiasriegiu tvarkaraščiu, kuris leidžia lengvai susidoroti su dešimtimis tūkstančių vienu metu esančių ryšių. Pažymėtina, kad „HAProxy“ naudoja PROXY protokolą, kad perduotų kliento prisijungimo informaciją serveriams arba kilmės serveriams, kad programa gautų visą reikiamą informaciją.

Kai kurios pagrindinės „HAProxy“ funkcijos apima tarpinį serverį, SSL palaikymą, serverio būsenų ir savo būsenos stebėjimą, aukštą prieinamumą, apkrovos balansavimą, lipnumą (palaikyti lankytoją tame pačiame serveryje net įvairiuose įvykiuose), turinio perjungimą, HTTP perrašymą ir peradresavimą, serverio apsauga, registravimas, statistika ir daug daugiau.

2. NGINX

NGINX - nemokamas, atviro kodo, didelio našumo ir labai populiarus HTTP serveris ir atvirkštinis tarpinis serveris. Jis taip pat veikia kaip IMAP/POP3 tarpinis serveris. „NGINX“ yra gerai žinomas dėl didelio našumo, stabilumo, turtingo funkcijų rinkinio, paprastos ir lanksčios konfigūracijos bei mažo išteklių sunaudojimo (ypač mažo atminties).

Kaip ir „HAProxy“, „NGINX“ turi įvykių valdomą architektūrą, todėl jai nėra problemų tvarkant dešimtis tūkstančių vienu metu esančių ryšių, nes naudojamas „HAProxy“ PROXY protokolas.

„NGINX“ palaiko pagreitintą atvirkštinį tarpinį serverį naudojant talpyklą naudojant „ngx_http_proxy_module“ modulį, kuris leidžia perduoti užklausas kitam serveriui per protokolus, išskyrus HTTP, pvz., „FastCGI“, „uwsgi“, SCGI ir „memcached“.

Svarbu tai, kad jis palaiko apkrovos balansavimą ir gedimų toleravimą, kurie yra gyvybiškai svarbūs didelio masto paskirstytų skaičiavimo sistemų aspektai. Modulis ngx_http_upstream_module leidžia apibrėžti užpakalinių serverių grupes, kad būtų paskirstytos klientų gaunamos užklausos. Tai daro jūsų programas patikimesnėmis, prieinamesnėmis ir patikimesnėmis, labai keičiamomis, su atsakymo laiku ir pralaidumu. Be to, kalbant apie saugumą, jis palaiko SSL/TLS nutraukimą ir tiek daug kitų saugos funkcijų.

Naudingi straipsniai „Nginx“ žiniatinklio serveryje, kuriuos galbūt norėtumėte perskaityti:

  • Kaip įdiegti „Nginx“ tinklo serverį „Ubuntu 20.04“
  • Kaip įdiegti „Nginx“ „CentOS 8“
  • Kaip įgalinti NGINX būsenos puslapį

3. Lakuokite HTTP talpyklą

„Varnish HTTP Cache“ (arba „Varnish Cache“ arba tiesiog „Lakas“) yra nemokama, atviro kodo, didelio našumo ir labai populiari talpykloje veikianti atvirkštinio tarpinio serverio programinė įranga, geriau žinoma kaip žiniatinklio programų spartintuvas, sukurta pagerinti HTTP našumą naudojant serverio pusės talpyklą.

Jis yra išdėstytas tarp kliento ir HTTP žiniatinklio serverio ar programų serverio; kiekvieną kartą, kai klientas prašo informacijos ar išteklių iš žiniatinklio serverio, „Varnish“ saugo informacijos kopiją, todėl kitą kartą, kai klientas paprašys tos pačios informacijos, „Lakas“ ją aptarnaus, nesiųsdamas užklausos žiniatinklio serveriui, taip sumažindamas apkrovą. serveryje ir savo ruožtu paspartinti žiniatinklio turinio pristatymą.

„Lakas“ naudoja lanksčią konfigūravimo kalbą, vadinamą lako konfigūravimo kalba (VLC), kuri, be kitų dalykų, leidžia sistemos administratoriams konfigūruoti, kaip turėtų būti apdorojamos gaunamos užklausos, koks turinys turėtų būti pateiktas, iš kur ir kaip turėtų būti pakeista užklausa ar atsakymas. , ir daug daugiau.

Lakas taip pat yra plečiamas - jį galima išplėsti naudojant lako modulius (VMOD), o vartotojai gali parašyti savo pasirinktus modulius arba naudoti bendruomenės pateiktus modulius.

Pagrindinis „Varnish“ apribojimas yra nepakankamas SSL/TLS palaikymas. Vienintelis būdas įgalinti HTTPS yra priešais jį įdiegti SSL/TLS terminatorių ar iškrovėją, pvz., „HAProxy“ ar „NGINX“.

4. Træfɪk

„Træfɪk“ (tariamasis eismas) yra nemokamas, atviro kodo, modernus ir greitas HTTP atvirkštinis tarpinis serveris ir apkrovos balanseris, skirtas mikro paslaugoms diegti, palaikantis kelis apkrovos balansavimo algoritmus. Jis gali sąveikauti su įvairiais tiekėjais (arba paslaugų paieškos mechanizmais ar orkestro įrankiais), tokiais kaip „Kubernates“, „Docker“, „Etcd“, „Rest API“, „Mesos/Marathon“, „Swarm“ ir „Zookeper“.

Jo mielas bruožas yra gebėjimas automatiškai ir dinamiškai valdyti konfigūraciją, taip atrandant tinkamą jūsų paslaugų konfigūraciją. Tai daro nuskaitydama jūsų infrastruktūrą, kad rastumėte reikiamos informacijos ir sužinotumėte, kuri paslauga kurią išorės pasaulio užklausą teikia. Paslaugų teikėjai „Træfɪk“ nurodo, kur yra jūsų programos ar mikro paslaugos.

Kitos „Træfɪk“ funkcijos palaikomos „WebSockets“, HTTP/2 ir GRPC, taip pat karštu įkrovimu (nuolat atnaujina jo konfigūraciją nepaleidžiant iš naujo), HTTPS naudojant „Let’s Encrypt“ sertifikatus (pakaitinių sertifikatų palaikymas) ir atskleidžia REST API. Ji taip pat saugo prieigos žurnalus ir teikia metriką („Rest“, „Prometheus“, „Datadog“, „Statsd“, „InfluxDB“).

Be to, „Træfɪk“ turi paprastą HTML vartotojo sąsają, skirtą įvykiams stebėti. Jis taip pat palaiko automatinius jungiklius, pakartotinių bandymų užklausas, greičio ribojimą ir pagrindinį autentifikavimą.

5. Apache srauto serveris

Anksčiau „Yahoo“ priklausęs komercinis produktas, kuris vėliau buvo perduotas „Apache Foundation“, „Apache Traffic Server“ yra nemokamas, atviro kodo ir greitas sparčiosios atminties pirmyn ir atgalinis tarpinis serveris.

„Traffic Server“ taip pat veikia kaip apkrovos balansatorius ir gali dalyvauti lanksčiose talpyklos hierarchijose. Yra žinoma, kad „Yahoo“ per dieną buvo valdoma daugiau kaip 400 TB eismo.

Jame pateikiamas turinio užklausų palaikymo, filtravimo ar anonimizavimo rinkinys, jis yra išplėstas per API, leidžiantį vartotojams kurti pasirinktinius įskiepius modifikuoti HTTP antraštes, tvarkyti ESI užklausas ar kurti naujus talpyklos algoritmus.

6. Kalmarų tarpinis serveris

„Squid“ yra nemokamas, atviro kodo ir gerai žinomas tarpinis serveris ir žiniatinklio talpyklos demonas, palaikantis įvairius protokolus, tokius kaip HTTP, HTTPS, FTP ir kt. Jame yra atvirkštinio tarpinio serverio (httpd-akseleratoriaus) režimas, kuris talpina įeinančius siunčiamų duomenų prašymus.

Jis palaiko turtingas eismo optimizavimo galimybes, prieigos kontrolę, autorizaciją, registravimo galimybes ir daug daugiau.

7. Svaras

„Pound“ yra dar vienas nemokamas ir atviro kodo, lengvas atvirkštinio tarpinio serverio ir apkrovos balanseris bei žiniatinklio serverių priekinė dalis. Tai taip pat yra SSL terminatorius (iššifruojantis klientų HTTPS užklausas ir siunčiantis juos kaip paprastą HTTP į vidinius serverius), HTTP/HTTPS dezinfekavimo priemonė (kuri patikrina teisingumo užklausas ir priima tik gerai suformuotas) ir gedimas. virš serverio.

8. Apache HTTP serveris

Paskutinis, bet ne mažiau svarbus dalykas - turime „Apache“ HTTP serverį (dar vadinamą HTTPD), populiariausią žiniatinklio serverį pasaulyje. Jis taip pat gali būti įdiegtas ir sukonfigūruotas veikti kaip atvirkštinis tarpinis serveris.

Be to, jūs taip pat galite atsiskaityti „Skipper“, naują vaiką iš bloko. Tai nemokamas ir atviro kodo HTTP maršrutizatorius bei atvirkštinis tarpinis serveris, skirtas sudaryti paslaugas, įskaitant tokius naudojimo atvejus kaip „Kubernetes Ingress“.

Tai viskas, ką turėjome jums šiame vadove. Norėdami gauti daugiau informacijos apie kiekvieną šio sąrašo įrankį, apsilankykite atitinkamose jų svetainėse. Nepamirškite pasidalinti savo mintimis su mumis naudodamiesi žemiau esančia atsiliepimų forma.