8 najboljših odprtokodnih obratnih strežnikov proxy za Linux


Povratni proxy strežnik je vrsta proxy strežnika, ki je razporejena med odjemalci in zalednimi/izvornimi strežniki, na primer strežnik HTTP, kot so NGINX, Apache itd., Ali strežniki aplikacij, napisani v Nodejs, Python, Java, Ruby , PHP in številni drugi programski jeziki.

To je prehod ali vmesni strežnik, ki sprejme odjemalsko zahtevo, jo posreduje enemu ali več zalednim strežnikom in nato od strežnika pridobi odgovor in ga vrne odjemalcu, tako da je videti, kot da je vsebina izvira iz samega obratnega strežnika proxy.

Na splošno je povratni strežnik proxy notranji strežnik proxy, ki se uporablja kot „front-end“ za nadzor in zaščito dostopa do zalednih strežnikov v zasebnem omrežju: običajno je nameščen za omrežnim požarnim zidom.

Pomaga zalednim strežnikom, da dosežejo anonimnost in tako povečajo svojo varnost. V IT-infrastrukturi lahko obratni proxy deluje tudi kot požarni zid aplikacije, izravnalnik obremenitve, zaključevalec TLS, spletni pospeševalnik (s predpomnjenjem statične in dinamične vsebine) in še veliko več.

V tem članku bomo pregledali 8 najbolj odprtokodnih povratnih strežnikov proxy, ki jih lahko uporabljate v sistemu Linux.

1. HAProksi

HAProxy (HAProxy, kar pomeni proxy visoke razpoložljivosti), brezplačna, odprtokodna, zelo hitra, zanesljiva in vrhunska programska oprema za uravnoteženje obremenitve in proxy za programe, ki temeljijo na TCP in HTTP, zgrajena za visoko razpoložljivost.

HAProxy je povratni proxy HTTP, proxy TCP in normalizator, SSL/TLS terminator/iniciator/razkladalnik, predpomnilnik proxy, HTTP kompresijski razkladalnik, regulator prometa, vsebinsko stikalo, prehod FastCGI in še več. Je tudi zaščita pred DDoS in zlorabo storitev.

Poganja ga mehanizem, ki ne blokira dogodkov, ki združuje zelo hiter V/I sloj s prednostnim večnitnim načrtovalnikom, ki mu omogoča enostavno obravnavo več deset tisoč sočasnih povezav. Predvsem HAProxy uporablja protokol PROXY za posredovanje informacij o povezavi odjemalca na zaledne ali izvorne strežnike, tako da aplikacija dobi vse ustrezne informacije.

Nekatere osnovne funkcije HAProxy vključujejo proksiranje, podporo SSL, spremljanje stanja strežnika in njegovega stanja, visoko razpoložljivost, uravnoteženje obremenitve, lepljivost (vzdrževanje obiskovalca na istem strežniku tudi ob različnih dogodkih), preklapljanje vsebine, prepisovanje HTTP in preusmeritev, zaščita strežnika, beleženje, statistika in še veliko več.

2. NGINX

NGINX, brezplačen, odprtokoden, visoko zmogljiv in zelo priljubljen strežnik HTTP in povratni proxy. Deluje tudi kot strežnik proxy IMAP/POP3. NGINX je dobro znan po visoki zmogljivosti, stabilnosti, bogatem naboru funkcij, preprosti in prilagodljivi konfiguraciji ter nizki porabi virov (zlasti majhen odtis pomnilnika).

Tako kot HAProxy ima tudi NGINX arhitekturo, ki jo vodijo dogodki, zato nima težav z več deset tisoč sočasnih povezav, saj uporablja protokol HAProxy PROXY.

NGINX podpira pospešeno povratno proksiranje s predpomnjenjem z uporabo modula ngx_http_proxy_module, ki omogoča posredovanje zahtev drugemu strežniku prek protokolov, ki niso HTTP, kot so FastCGI, uwsgi, SCGI in memcached.

Pomembno je, da podpira uravnoteženje obremenitve in odpornost na napake, ki sta ključna vidika obsežnih porazdeljenih računalniških sistemov. Modul ngx_http_upstream_module omogoča definiranje skupin zalednih strežnikov za distribucijo zahtev, ki prihajajo iz odjemalcev. Zaradi tega so vaše aplikacije bolj robustne, dostopne in zanesljive, zelo prilagodljive, z odzivnim časom in prepustnostjo. Poleg tega glede varnosti podpira prekinitev SSL/TLS in toliko drugih varnostnih funkcij.

Koristni članki o spletnem strežniku Nginx, ki bi jih morda radi prebrali:

  • Kako namestiti spletni strežnik Nginx v Ubuntu 20.04
  • Kako namestiti Nginx na CentOS 8
  • Kako omogočiti stran s stanjem NGINX

3. Lakirajte predpomnilnik HTTP

Varnish HTTP Cache (ali Varnish Cache ali preprosto Varnish) je brezplačna, odprtokodna, visoko zmogljiva in zelo priljubljena predpomnilniška programska oprema za povratni proxy, bolj znana kot pospeševalnik spletnih aplikacij, namenjena izboljšanju zmogljivosti HTTP s pomočjo predpomnilnika na strani strežnika.

Razporejen je med odjemalcem in spletnim strežnikom HTTP ali strežnikom aplikacij; vsakič, ko odjemalec zahteva informacije ali vir s spletnega strežnika, Varnish shrani kopijo informacij, zato ga bo naslednjič, ko bo stranka zahtevala iste podatke, vročil brez pošiljanja zahteve spletnemu strežniku in tako zmanjšal obremenitev na strežniku in posledično pospešuje dostavo spletnih vsebin.

Varnish uporablja prožni konfiguracijski jezik, znan kot Varnish Configuration Language (VLC), ki sistemskim skrbnikom med drugim omogoča, da konfigurirajo, kako naj se obdelujejo dohodne zahteve, katera vsebina naj bo vročena in od kod ter kako naj se zahteva ali odgovor spremeni , in veliko več.

Lak je tudi razširljiv - lahko ga razširite z moduli za lakiranje (VMOD), uporabniki pa lahko napišejo svoje module po meri ali uporabijo module, ki jih zagotavlja skupnost.

Glavna omejitev laka je pomanjkanje podpore za SSL/TLS. Edini način, da omogočite HTTPS, je, da pred njim postavite zaključevalnik SSL/TLS ali razkladalnik, kot je HAProxy ali NGINX.

4. Træfɪk

Træfɪk (izrazit Traffic) je brezplačen, odprtokoden, sodoben in hiter povratni proxy HTTP in izravnalnik obremenitve za uvajanje mikro storitev, ki podpira več algoritmov za uravnoteženje obremenitve. Lahko se poveže z različnimi ponudniki (ali mehanizmi za odkrivanje storitev ali orodji za orkestracijo), kot so Kubernates, Docker, Etcd, Rest API, Mesos/Marathon, Swarm in Zookeper.

Njegova všečna lastnost je sposobnost samodejnega in dinamičnega upravljanja s svojo konfiguracijo, s čimer odkrije pravo konfiguracijo za vaše storitve. To stori tako, da skenira vašo infrastrukturo, da najde ustrezne informacije in odkrije, katera storitev postreže z zahtevami iz zunanjega sveta. Ponudniki Træfɪku sporočijo, kje se nahajajo vaše aplikacije ali mikro storitve.

Træfɪkove druge funkcije so podprte za WebSockets, HTTP/2 in GRPC ter vroče ponovno nalaganje (nenehno posodablja svojo konfiguracijo brez ponovnega zagona), HTTPS z uporabo certifikatov Let’s Encrypt (podpora za nadomestne certifikate) in izpostavlja API REST. Hrani tudi dnevnike dostopa in zagotavlja meritve (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Træfɪk ima tudi preprost spletni uporabniški vmesnik, ki temelji na HTML in se uporablja za spremljanje dogodkov. Podpira tudi odklopnike, zahteve za ponovni poskus, omejitev hitrosti in osnovno preverjanje pristnosti.

5. Strežnik Apache Traffic

Prej komercialni izdelek v lasti Yahooja, ki je bil kasneje predan fundaciji Apache, je strežnik Traffic Apache brezplačen, odprtokoden in hiter strežnik za predpomnjenje in obratno-proxy.

Traffic Server deluje tudi kot izravnalnik obremenitve in lahko sodeluje v prilagodljivih hierarhijah predpomnilnika. Znano je, da je v Yahooju dnevno obdelal več kot 400 TB prometa.

Ponuja nabor ohranjanja, filtriranja ali anonimiziranja zahtev za vsebino in je razširljiv prek API-ja, ki uporabnikom omogoča ustvarjanje vtičnikov po meri za spreminjanje HTTP glav, obdelavo zahtev ESI ali oblikovanje novih algoritmov predpomnilnika.

6. Proxy strežnik lignjev

Squid je brezplačen, odprtokodni in dobro znani demon strežnika proxy in spletnega predpomnilnika, ki podpira različne protokole, kot so HTTP, HTTPS, FTP in drugi. Ima način povratnega proxyja (httpd-pospeševalnik), ki predpomni dohodne zahteve za odhodne podatke.

Podpira bogate možnosti za optimizacijo prometa, nadzor dostopa, avtorizacijo, naprave za beleženje in še veliko več.

7. Funt

Pound je še en brezplačen in odprtokoden, lahek povratni proxy in izravnalnik obremenitve ter front-end za spletne strežnike. Je tudi zaključevalec SSL (ki dešifrira zahteve HTTPS od odjemalcev in jih pošlje kot navaden HTTP zalednim strežnikom), dezinfekcijsko sredstvo HTTP/HTTPS (ki preverja zahteve za pravilnost in sprejema samo dobro oblikovane) in neuspeh -over strežnik.

8. Strežnik Apache HTTP

Nenazadnje imamo še strežnik Apache HTTP (znan tudi kot HTTPD), najbolj priljubljen spletni strežnik na svetu. Lahko ga tudi postavite in konfigurirate tako, da deluje kot obratni proxy.

Poleg tega lahko naročite tudi Skipperja, novega otroka v bloku. Je brezplačen in odprtokodni usmerjevalnik HTTP in povratni proxy za sestavo storitev, vključno s primeri uporabe, kot je Kubernetes Ingress.

To je vse, kar smo imeli za vas v tem priročniku. Za več informacij o posameznem orodju na tem seznamu si oglejte njihova spletna mesta. Ne pozabite deliti svojih misli z nami prek spodnjega obrazca za povratne informacije.