10 najboljih obrnutih proxy servera otvorenog koda za Linux


Obrnuti proxy server je vrsta proxy servera koji je raspoređen između klijenata i back-end/origin servera, na primjer, HTTP server kao što je NGINX, Apache, itd.. ili serveri aplikacija napisani u Nodejs, Python, Java, Ruby, PHP i mnogi drugi programski jezici.

To je gateway ili posrednički server koji uzima zahtjev klijenta, prosljeđuje ga jednom ili više back-end servera, a zatim dohvaća odgovor sa servera i vraća ga nazad klijentu, čineći tako da izgleda kao da je sadržaj potiče od samog obrnutog proxy servera.

Općenito, obrnuti proxy server je interni proxy koji se koristi kao 'front-end' za kontrolu i zaštitu pristupa back-end serverima na privatnoj mreži: obično se postavlja iza mrežnog zaštitnog zida .

Pomaže back-end serverima da postignu anonimnost kako bi poboljšali svoju sigurnost. U IT infrastrukturi, obrnuti proxy može također funkcionirati kao zaštitni zid aplikacije, balansator opterećenja, TLS terminator, web akcelerator (keširanjem statičkog i dinamičkog sadržaja) i još mnogo toga.

U ovom članku ćemo pregledati 10 najboljih open-source reverse proxy servera koje možete koristiti na Linux sistemu.

1. HAProxy – (TCP/HTTP Load Balancer)

HAProxy (HAProxy, što je skraćenica od High Availability Proxy), je besplatan, otvorenog koda, vrlo brz, pouzdan i vrhunski softver za balansiranje opterećenja i proxy za TCP i HTTP-bazirane aplikacije, napravljene za visoku dostupnost.

HAProxy je HTTP reverse proxy, TCP proxy i normalizator, SSL/TLS terminator/inicijator/offloader, proxy za keširanje, HTTP kompresijski offloader, regulator prometa, prekidač zasnovan na sadržaju, a FastCGI gateway i još mnogo toga. To je također zaštita od DDoS-a i zloupotrebe usluga.

Pokreće ga mehanizam koji ne blokira događaje i koji kombinuje veoma brz I/O sloj sa višenitnim planerom zasnovanim na prioritetima koji mu omogućava da se lako nosi sa desetinama hiljada istovremenih veza.

Posebno, HAProxy koristi PROXY protokol za prosljeđivanje informacija o vezi klijenta na pozadinski ili izvorni server tako da aplikacija dobije sve relevantne informacije.

Neke od osnovnih karakteristika HAProxy-a uključuju proxying, SSL podršku, praćenje stanja servera i njihovog stanja, visoku dostupnost, balansiranje opterećenja, ljepljivost (održavanje posjetitelja na istom serveru čak i tokom raznih događaja), prebacivanje sadržaja, HTTP ponovno pisanje i preusmjeravanje, server zaštita, evidentiranje, statistika i još mnogo toga.

2. NGINX – (HTTP i reverse proxy web server)

NGINX je besplatan, otvorenog koda, visokih performansi i vrlo popularan HTTP server i reverzni proxy. Takođe funkcioniše kao IMAP/POP3 proxy server. NGINX je dobro poznat po svojim visokim performansama, stabilnosti, bogatom skupu funkcija, jednostavnoj i fleksibilnoj konfiguraciji i maloj potrošnji resursa (posebno malom memorijskom otisku).

Baš kao i HAProxy, NGINX ima arhitekturu vođenu događajima tako da nema problema sa desetinama hiljada istovremenih veza, jer koristi HAProxy PROXY > protokol.

NGINX podržava ubrzano obrnuto proxying sa keširanjem pomoću modula ngx_http_proxy_module, koji omogućava prosljeđivanje zahtjeva drugom serveru 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 grešaka koje su vitalni aspekti velikih distribuiranih računarskih sistema. Modul ngx_http_upstream_module omogućava definiranje grupa backend servera za distribuciju zahtjeva koji dolaze od klijenata.

Ovo č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 terminaciju i mnoge druge sigurnosne karakteristike.

Korisni članci o Nginx web serveru koje biste mogli pročitati:

3. Varnish – (proxy za obrnuto keširanje)

Varnish HTTP Cache (ili Varnish Cache ili jednostavno Varnish) je besplatan, otvorenog koda, visokih performansi i vrlo popularan softver za keširanje obrnutog proxyja poznatiji kao web akcelerator aplikacija, dizajniran da poboljša HTTP performanse koristeći keširanje na strani servera.

Raspoređuje se između klijenta i HTTP web servera ili servera aplikacija; svaki put kada klijent zatraži informaciju ili resurs od web servera, Varnish pohranjuje kopiju informacija, tako da sljedeći put kada klijent zatraži iste informacije, Varnish će ih poslužiti bez slanja zahtjeva web serveru čime se smanjuje opterećenje na server i zauzvrat ubrzava isporuku web sadržaja.

Varnish koristi fleksibilni konfiguracijski jezik poznat kao Jezik konfiguracije laka (VLC) koji između ostalog omogućava administratorima sistema da konfigurišu kako bi dolazni zahtjevi trebali biti obraditi, koji sadržaj treba biti uručen i odakle, i kako treba promijeniti zahtjev ili odgovor i još mnogo toga.

Lak je također proširiv – može se proširiti pomoću Varnish modula (VMOD-ova) i korisnici mogu pisati svoje prilagođene module ili koristiti module koje obezbjeđuje zajednica.

Glavno ograničenje Varnish-a je nedostatak podrške za SSL/TLS. Jedini način da omogućite HTTPS je da implementirate 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, open-source, moderan i brz HTTP reverse proxy i balansator opterećenja za implementaciju mikro-usluga koji podržava više algoritama za balansiranje opterećenja.

Može da se poveže sa različitim provajderima (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 karakteristika je sposobnost da automatski i dinamički upravlja svojom konfiguracijom na taj način otkrivajući pravu konfiguraciju za vaše usluge. To radi skeniranjem vaše infrastrukture da pronađe relevantne informacije i otkrije koja usluga služi koji zahtjev iz vanjskog svijeta. Provajderi govore Træfɪk gdje se nalaze vaše aplikacije ili mikro-usluge.

Ostale funkcije Træfɪk-a su podržane za WebSockets, HTTP/2 i GRPC, ponovno učitavanje (kontinuirano ažurira svoju konfiguraciju bez ponovnog pokretanja), HTTPS korištenjem Let’s Encrypt certifikata (podrška za wildcard certifikate) i izlaže REST API. Takođe čuva evidenciju pristupa i obezbeđuje metriku (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Također, Træfɪk se isporučuje s jednostavnim web korisničkim interfejsom zasnovanim na HTML-u koji se koristi za praćenje događaja. Također podržava prekidače, zahtjeve za ponovni pokušaj, ograničavanje brzine i osnovnu autentifikaciju.

5. Apache Traffic Server – (Reverse and Forward proxy server)

Ranije komercijalni proizvod u vlasništvu Yahooa koji je kasnije predat Apache fondaciji, Apache Traffic Server je besplatan, otvorenog koda i brzi keširanje naprijed i nazad proxy server.

Traffic Server također radi kao balansiranje opterećenja i može učestvovati u fleksibilnim hijerarhijama keša. Poznato je da je obrađivao preko 400 TB dnevno saobraćaja na Yahoou.

Sadrži skup održavanja, filtriranja ili anonimizacije zahtjeva za sadržajem, i proširiv je preko API-ja koji omogućava korisnicima da kreiraju prilagođene dodatke za modificiranje HTTP zaglavlja, rukovanje ESI zahtjevima ili dizajniranje novih algoritama keš memorije.

6. Squid – (Keširanje i prosljeđivanje HTTP proxyja)

Squid je besplatan, otvorenog koda i dobro poznati proxy server i web keš demon koji podržava različite protokole kao što su HTTP, HTTPS, FTP i još mnogo toga. Sadrži režim obrnutog proxyja (httpd-accelerator) koji kešira dolazne zahtjeve za odlazne podatke.

Podržava bogate opcije optimizacije prometa, kontrolu pristupa, autorizaciju, objekte za evidentiranje i još mnogo toga.

7. funta – (obrnuti proxy i balansator opterećenja)

Funta je još jedan besplatni i otvoreni, lagani reverzni proxy i balansator opterećenja i front-end za web servere. To je također SSL terminator (koji dešifruje HTTPS zahtjeve od klijenata i šalje ih kao običan HTTP na back-end servere).

HTTP/HTTPS dezinfekciono sredstvo (koji provjerava ispravnost zahtjeva i prihvata samo one koji su dobro formirani) i server za preklapanje greške.

8. Apache – (HTTP web server)

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

Apache se ističe u usmjeravanju zahtjeva klijenata na pozadinske servere, poboljšavajući sigurnost, balansiranje opterećenja i optimizirajući performanse web aplikacija. Djelujući kao posrednik, Apache može efikasno distribuirati dolazni promet na više instanci servera, 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 keširanje sadržaja ili isporuku aplikacija.

9. Skipper – (HTTP ruter i obrnuti proxy)

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

Napravljen je da upravlja značajnim brojem dinamički konfigurisanih HTTP definicija ruta, premašujući 800.000 ruta, sa složenim uslovima traženja i nudi fleksibilnost za poboljšanje toka zahteva pomoću filtera.

Može se lako implementirati kakav jeste ili se može proširiti ugradnjom prilagođenog pretraživanja, logike filtera i izvora konfiguracije.

10 Caddy 2 – Brzi server sa automatskim HTTPS-om

Caddy 2 je open-source web server i reverzni 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 novopridošlice i za iskusne korisnike.

Caddy 2 je dizajniran da bez napora upravlja web hostingom, HTTP/2, balansiranjem opterećenja i proxyingom, poboljšavajući performanse i sigurnost web stranice. Njegova priroda otvorenog koda podstiče doprinos zajednice, a popularnost je stekla zbog svoje lakoće upotrebe i modernih funkcija u svijetu web hostinga i upravljanja serverima.

Zaključak

To je sve što smo imali za vas u ovom vodiču. Za više informacija o svakom alatu na ovoj listi, pogledajte njihove web stranice. Ne zaboravite podijeliti svoje mišljenje s nama putem obrasca za povratne informacije ispod.