10 najboljih obrnutih proxy poslužitelja otvorenog koda za Linux


Obrnuti proxy poslužitelj vrsta je proxy poslužitelja koji se postavlja između klijenata i pozadinskih/izvornih poslužitelja, na primjer, HTTP poslužitelj kao što je NGINX, Apache, itd.. ili aplikacijski poslužitelji napisani u Nodejs, Python, Java, Ruby, PHP i mnogi drugi programski jezici.

To je pristupnik ili posrednički poslužitelj koji preuzima zahtjev klijenta, prosljeđuje ga jednom ili više pozadinskih poslužitelja, a potom dohvaća odgovor s poslužitelja i isporučuje ga natrag klijentu, čime se čini da sadržaj potječe od samog obrnutog proxy poslužitelja.

Općenito, obrnuti proxy poslužitelj je interni proxy koji se koristi kao 'front-end' za kontrolu i zaštitu pristupa pozadinskim poslužiteljima na privatnoj mreži: obično se postavlja iza mrežnog vatrozida .

Pomaže pozadinskim poslužiteljima da postignu anonimnost kako bi poboljšali svoju sigurnost. U IT infrastrukturi, obrnuti proxy također može funkcionirati kao vatrozid aplikacije, balanser opterećenja, TLS terminator, web akcelerator (predmemoriranjem statičnog i dinamičkog sadržaja) i još mnogo toga.

U ovom ćemo članku pregledati 10 najboljih obrnutih proxy poslužitelja otvorenog koda koje možete koristiti na Linux sustavu.

1. HAProxy – (TCP/HTTP balanser opterećenja)

HAProxy (HAProxy, što je kratica za High Availability Proxy), besplatan je, otvorenog koda, vrlo brz, pouzdan i vrhunski softver za balansiranje opterećenja i proxy za TCP i aplikacije temeljene na HTTP-u, izgrađene za visoku dostupnost.

HAProxy je HTTP obrnuti proxy, TCP proxy i normalizator, SSL/TLS terminator/inicijator/offloader, proxy za predmemoriju, HTTP kompresija offloader, regulator prometa, prekidač temeljen na sadržaju, FastCGI pristupnik i više. Također je zaštita od DDoS-a i zlouporabe usluga.

Pokreće ga neblokirajući motor vođen događajima koji kombinira vrlo brz I/O sloj s planerom s više niti temeljenim na prioritetima koji mu omogućuje da se lako nosi s desecima tisuća istodobnih veza.

Naime, HAProxy koristi PROXY protokol za prosljeđivanje informacija o vezi klijenta na pozadinske ili izvorne poslužitelje tako da aplikacija dobije sve relevantne informacije.

Neke od osnovnih značajki HAProxyja uključuju proxy, podršku za SSL, praćenje stanja poslužitelja i njihovog stanja, visoku dostupnost, balansiranje opterećenja, nepomičnost (zadržavanje posjetitelja na istom poslužitelju čak i tijekom različitih događaja), prebacivanje sadržaja, HTTP prepisivanje i preusmjeravanje, poslužitelj zaštita, evidentiranje, statistika i još mnogo toga.

2. NGINX – (HTTP i obrnuti proxy web poslužitelj)

NGINX je besplatan, otvorenog izvornog koda, visokih performansi i vrlo popularan HTTP poslužitelj i obrnuti proxy. Također funkcionira kao IMAP/POP3 proxy poslužitelj. NGINX dobro je poznat po svojim visokim performansama, stabilnosti, bogatom skupu značajki, jednostavnoj i fleksibilnoj konfiguraciji i niskoj potrošnji resursa (osobito malom memorijskom otisku).

Baš kao HAProxy, NGINX ima arhitekturu vođenu događajima tako da nema problema s desecima tisuća istodobnih veza, budući da koristi HAProxyjev PROXY protokol.

NGINX podržava ubrzani obrnuti proxy s predmemoriranjem pomoću modula ngx_http_proxy_module, koji omogućuje prosljeđivanje zahtjeva drugom poslužitelju preko protokola koji nisu HTTP, kao što su FastCGI, uwsgi, SCGI i Memcached.

Ono što je važno, podržava balansiranje opterećenja i toleranciju na greške, što su vitalni aspekti velikih distribuiranih računalnih sustava. Modul ngx_http_upstream_module omogućuje definiranje grupa pozadinskih poslužitelja za distribuciju zahtjeva koji dolaze od klijenata.

To čini vaše aplikacije robusnijim, dostupnijim i pouzdanijim, visoko skalabilnim, s vremenom odziva i propusnošću. Dodatno, što se tiče sigurnosti, podržava SSL/TLS završetak i mnoge druge sigurnosne značajke.

Korisni članci o Nginx web poslužitelju koje biste mogli pročitati:

3. Varnish – (proxy za obrnuto predmemoriranje)

Varnish HTTP Cache (ili Varnish Cache ili jednostavno Varnish) besplatan je, otvorenog koda, visokih performansi i vrlo popularan reverzni proxy softver za predmemoriju poznatiji kao web akcelerator aplikacija, dizajniran za poboljšanje HTTP performansi korištenjem predmemoriranja na strani poslužitelja.

Postavlja se između klijenta i HTTP web poslužitelja ili aplikacijskog poslužitelja; svaki put kada klijent zatraži informaciju ili resurs od web poslužitelja, Varnish pohranjuje kopiju informacija, tako da sljedeći put kada klijent zatraži istu informaciju, Varnish će ih poslužiti bez slanja zahtjeva web poslužitelju čime se smanjuje opterećenje na poslužitelj i zauzvrat ubrzava isporuku web sadržaja.

Varnish koristi fleksibilni konfiguracijski jezik poznat kao Varnish Configuration Language (VLC) koji između ostalog omogućuje administratorima sustava da konfiguriraju kako bi dolazni zahtjevi trebali biti obrađen, koji sadržaj treba poslužiti i odakle, te kako se zahtjev ili odgovor treba promijeniti i još mnogo toga.

Lakiranje je također proširivo – može se proširiti pomoću modula lakiranja (VMODs), a korisnici mogu pisati svoje prilagođene module ili koristiti module koje pruža zajednica.

Glavno ograničenje Varnisha je nedostatak podrške za SSL/TLS. Jedini način da omogućite HTTPS je da postavite SSL/TLS terminator ili offloader kao što je HAProxy ili NGINX u ispred njega.

4. Træfɪk – (Proxy izvorne aplikacije u oblaku)

Træfɪk (izgovara se Traffic) je besplatan, moderan i brz HTTP obrnuti proxy i balanser opterećenja otvorenog koda za implementaciju mikro-usluga koje podržavaju višestruke algoritme za balansiranje opterećenja.

Može surađivati s raznim pružateljima (ili mehanizmima za otkrivanje usluga ili alatima za orkestraciju) kao što su Kubernetes, Docker, Etcd, Rest API, Mesos/Marathon, Swarm i Zookeper.

Njegova simpatična značajka je mogućnost automatskog i dinamičkog upravljanja svojom konfiguracijom otkrivajući tako pravu konfiguraciju za vaše usluge. To čini skeniranjem vaše infrastrukture kako bi pronašao relevantne informacije i otkrio koja usluga ispunjava koji zahtjev iz vanjskog svijeta. Davatelji govore Træfɪk gdje se nalaze vaše aplikacije ili mikroservisi.

Druge značajke Træfɪka podržane su za WebSockets, HTTP/2 i GRPC, vruće ponovno učitavanje (kontinuirano ažurira svoju konfiguraciju bez ponovnog pokretanja), HTTPS pomoću Let’s Encrypt certifikata (podrška za zamjenski certifikat) i izlaže REST API. Također vodi zapisnike pristupa i pruža metriku (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Također, Træfɪk isporučuje se s jednostavnim web korisničkim sučeljem temeljenim na HTML-u koje se koristi za praćenje događaja. Također podržava prekidače strujnog kruga, zahtjeve za ponovnim pokušajima, ograničavanje brzine i osnovnu autentifikaciju.

5. Apache prometni poslužitelj – (obrnuti i naprijed proxy poslužitelj)

Prethodno komercijalni proizvod u vlasništvu Yahooa koji je kasnije predan Apache Foundation, Apache Traffic Server besplatan je proxy s otvorenim kodom i brzim predmemoriranjem naprijed i natrag poslužitelj.

Prometni poslužitelj također radi kao balanser opterećenja i može sudjelovati u fleksibilnim hijerarhijama predmemorije. Poznato je da je obrađivao preko 400 TB dnevno prometa na Yahoou.

Sadrži skup održavanja, filtriranja ili anonimiziranja zahtjeva za sadržajem i proširiv je putem API-ja koji korisnicima omogućuje stvaranje prilagođenih dodataka za izmjenu HTTP zaglavlja, rukovanje ESI zahtjevima ili dizajn novih algoritama predmemorije.

6. Squid – (predmemoriranje i prosljeđivanje HTTP proxyja)

Squid je besplatan, otvorenog koda i dobro poznati proxy poslužitelj i demon predmemorije weba koji podržava razne protokole kao što su HTTP, HTTPS, FTP i više. Sadrži obrnuti proxy (httpd-akcelerator) način rada koji sprema dolazne zahtjeve za odlazne podatke.

Podržava bogate mogućnosti optimizacije prometa, kontrolu pristupa, autorizaciju, mogućnosti bilježenja i još mnogo toga.

7. Pound – (obrnuti proxy i balanser opterećenja)

Pound je još jedan besplatni i otvorenog koda, lagani obrnuti proxy i balanser opterećenja te front-end za web poslužitelje. Također je SSL terminator (koji dekriptira HTTPS zahtjeve od klijenata i šalje ih kao običan HTTP pozadinskim poslužiteljima).

HTTP/HTTPS sanitizer (koji provjerava ispravnost zahtjeva i prihvaća samo one dobro oblikovane) i poslužitelj za provjeru greške.

8. Apache – (HTTP web poslužitelj)

Apache HTTP poslužitelj (također poznat kao HTTPD), najpopularniji web poslužitelj na svijetu također se može postaviti i konfigurirati da djeluje kao obrnuti proxy.

Apache se ističe u usmjeravanju zahtjeva klijenta prema pozadinskim poslužiteljima, poboljšavanju sigurnosti, balansiranju opterećenja i optimiziranju performansi web aplikacije. Djelujući kao posrednik, Apache može učinkovito distribuirati dolazni promet na više instanci poslužitelja, osiguravajući visoku dostupnost i besprijekorno korisničko iskustvo.

Njegove robusne i prilagodljive opcije konfiguracije čine ga vrhunskim izborom za organizacije koje traže pouzdano rješenje za potrebe obrnutog proxyja, bilo za predmemoriju sadržaja ili isporuku aplikacija.

9. Skipper – (HTTP usmjerivač i obrnuti proxy)

Skipper je besplatni HTTP usmjerivač otvorenog koda i obrnuti proxy za sastav usluge, uključujući slučajeve upotrebe kao što je Kubernetes Ingress.

Napravljen je za upravljanje znatnim brojem dinamički konfiguriranih definicija HTTP ruta, nadmašujući 800.000 ruta, sa zamršenim uvjetima traženja i nudeći fleksibilnost za poboljšanje tijeka zahtjeva s filtrima.

Može se odmah implementirati takav kakav jest ili se može proširiti uključivanjem prilagođenog pretraživanja, logike filtera i izvora konfiguracije.

10 Caddy 2 – brzi poslužitelj s automatskim HTTPS-om

Caddy 2 je web poslužitelj otvorenog koda i obrnuti proxy poznat po svojoj jednostavnosti i svestranosti, koji nudi korisničko sučelje i automatski HTTPS prema zadanim postavkama, što ga čini pristupačnim izborom i za početnike i za iskusne korisnike.

Caddy 2 dizajniran je za jednostavno rukovanje web hostingom, HTTP/2, balansiranjem opterećenja i proxyjem, poboljšavajući performanse i sigurnost web stranice. Njegova priroda otvorenog koda potiče doprinos zajednice, a stekao je popularnost zbog svoje jednostavne upotrebe i modernih značajki u svijetu web hostinga i upravljanja poslužiteljima.

Zaključak

To je sve što smo imali za vas u ovom vodiču. Više informacija o svakom alatu na ovom popisu potražite na njihovim web-mjestima. Ne zaboravite podijeliti svoje mišljenje s nama putem donjeg obrasca za povratne informacije.