8 parasta avoimen lähdekoodin käänteistä välityspalvelinta Linuxille


Käänteinen välityspalvelin on välityspalvelin, joka on sijoitettu asiakkaiden ja taustapalvelinten/lähtöpalvelimien välille, esimerkiksi HTTP-palvelin, kuten NGINX, Apache jne., Tai sovelluspalvelimet, jotka on kirjoitettu Nodejs, Python, Java, Ruby , PHP ja monet muut ohjelmointikielet.

Se on yhdyskäytävä tai välityspalvelin, joka ottaa asiakaspyynnön, välittää sen yhdelle tai useammalle back-end-palvelimelle ja noutaa vastauksen palvelimelta ja toimittaa sen takaisin asiakkaalle, jolloin se näyttää ikään kuin sisältö on peräisin itse käänteisestä välityspalvelimesta.

Yleensä käänteinen välityspalvelin on sisäistä välityspalvelinta, jota käytetään "käyttöliittymänä" hallitsemaan ja suojaamaan yksityisen verkon taustapalvelimien käyttöä: se on yleensä sijoitettu verkon palomuurin taakse.

Se auttaa taustapalvelimia saavuttamaan nimettömyyden turvallisuuden parantamiseksi. IT-infrastruktuurissa käänteinen välityspalvelin voi toimia myös sovelluksen palomuurina, kuormituksen tasapainottajana, TLS-päätelaitteena, verkkokiihdyttimenä (staattisen ja dynaamisen sisällön välimuistilla) ja paljon muuta.

Tässä artikkelissa tarkastelemme 8 parasta avoimen lähdekoodin käänteistä välityspalvelinta, joita voit käyttää Linux-järjestelmässä.

1. HAProxy

HAProxy (HAProxy, joka tarkoittaa korkean käytettävyyden välityspalvelinta), ilmainen, avoimen lähdekoodin, erittäin nopea, luotettava ja huippuluokan kuormituksen tasapainotin ja välityspalvelinohjelma TCP- ja HTTP-pohjaisiin sovelluksiin, joka on rakennettu korkeaan käytettävyyteen.

HAProxy on HTTP-käänteinen välityspalvelin, TCP-välityspalvelin ja normalisoija, SSL/TLS-pääte/aloittaja/purkulaite, välimuistipalvelin, HTTP-pakkauksen purkulaite, liikenteen säädin, sisältöpohjainen kytkin, FastCGI-yhdyskäytävä ja paljon muuta. Se on myös suoja DDoS-palveluita ja palvelujen väärinkäyttöä vastaan.

Sitä käyttää tapahtumavetoinen, estämätön moottori, joka yhdistää erittäin nopean I/O-kerroksen prioriteettipohjaiseen, monisäikeiseen ajastimeen, jonka avulla se pystyy käsittelemään helposti kymmeniä tuhansia samanaikaisia yhteyksiä. Erityisesti HAProxy käyttää PROXY-protokollaa välittämään asiakkaan yhteysinformaatiot palvelinten taustatietoihin tai lähtöpalvelimiin, jotta sovellus saa kaikki tarvittavat tiedot.

Joitakin HAProxyn perusominaisuuksia ovat välityspalvelin, SSL-tuki, sekä palvelintilojen että oman tilan valvonta, korkea käytettävyys, kuormituksen tasapainottaminen, tahmeus (ylläpitää kävijää samassa palvelimessa myös eri tapahtumien aikana), sisällönvaihto, HTTP-uudelleenkirjoittaminen ja uudelleenohjaus, palvelinsuojaus, kirjaaminen, tilastot ja paljon muuta.

2. NGINX

NGINX, ilmainen, avoimen lähdekoodin, erittäin suorituskykyinen ja erittäin suosittu HTTP-palvelin ja käänteinen välityspalvelin. Se toimii myös IMAP/POP3-välityspalvelimena. NGINX on tunnettu korkean suorituskyvyn, vakauden, monipuolisten ominaisuuksien joukosta, yksinkertaisesta ja joustavasta kokoonpanosta sekä vähäisestä resurssien kulutuksesta (erityisesti pienestä muistinjäljestä).

Aivan kuten HAProxy, NGINX: llä on tapahtumapohjainen arkkitehtuuri, joten sillä ei ole ongelmaa käsitellä kymmeniä tuhansia samanaikaisia yhteyksiä, koska se käyttää HAProxyn PROXY-protokollaa.

NGINX tukee nopeutettua käänteistä välityspalvelinta välimuistilla käyttämällä ngx_http_proxy_module-moduulia, joka sallii pyyntöjen siirtämisen toiselle palvelimelle muiden kuin HTTP-protokollien, kuten FastCGI, uwsgi, SCGI ja memcached, kautta.

Tärkeää on, että se tukee kuormituksen tasapainottamista ja vikasietoisuutta, jotka ovat tärkeitä näkökohtia suurissa hajautetuissa tietojenkäsittelyjärjestelmissä. Ngx_http_upstream_module-moduuli mahdollistaa taustapalvelimien ryhmien määrittelemisen asiakkailta tulevien pyyntöjen jakamiseksi. Tämä tekee sovelluksistasi vakaamman, saatavamman ja luotettavamman, erittäin skaalautuvan, vasteajan ja läpäisykyvyn. Lisäksi tietoturvan osalta se tukee SSL/TLS-purkamista ja monia muita turvaominaisuuksia.

Hyödyllisiä artikkeleita Nginx-verkkopalvelimesta, joita haluat ehkä lukea:

  • Nginx-verkkopalvelimen asentaminen Ubuntu 20.04 -käyttöjärjestelmään
  • Nginxin asentaminen CentOS 8: een
  • NGINX-tilasivun käyttöönotto

3. Lakkaa HTTP-välimuisti

Varnish HTTP Cache (tai Varnish Cache tai yksinkertaisesti Varnish) on ilmainen, avoimen lähdekoodin, korkean suorituskyvyn ja erittäin suosittu välimuistin käänteinen välityspalvelinohjelmisto, joka tunnetaan paremmin nimellä verkkosovelluksen kiihdytin ja joka on suunniteltu parantamaan HTTP-suorituskykyä palvelinpuolen välimuistin avulla.

Se on sijoitettu asiakkaan ja HTTP-Web-palvelimen tai sovelluspalvelimen välille; joka kerta, kun asiakas pyytää tietoja tai resursseja verkkopalvelimelta, Varnish tallentaa kopion tiedoista, joten seuraavalla kerralla, kun asiakas pyytää samoja tietoja, Varnish palvelee niitä lähettämättä pyyntöä verkkopalvelimelle, mikä vähentää kuormaa palvelimella ja puolestaan nopeuttaa verkkosisällön toimittamista.

Varnish käyttää joustavaa määrityskieliä, joka tunnetaan nimellä Varnish Configuration Language (VLC), jonka avulla järjestelmänvalvojat voivat muun muassa määrittää, miten saapuvat pyynnöt tulisi käsitellä, mitä sisältöä tulisi tarjota ja mistä ja miten pyyntöä tai vastausta tulisi muuttaa , ja paljon enemmän.

Lakka on myös laajennettavissa - sitä voidaan laajentaa käyttämällä VMOD-moduuleja ja käyttäjät voivat kirjoittaa mukautettuja moduuleja tai käyttää yhteisön toimittamia moduuleja.

Varnishin suurin rajoitus on tuen puute SSL/TLS: lle. Ainoa tapa ottaa HTTPS käyttöön on asentaa SSL/TLS-päätelaite tai purkulaite, kuten HAProxy tai NGINX, sen eteen.

4. Træfɪk

Træfɪk (lausuttu liikenne) on ilmainen, avoimen lähdekoodin, moderni ja nopea HTTP-käänteinen välityspalvelin ja kuormituksen tasapainotin mikropalvelujen käyttöönottoon, joka tukee useita kuormituksen tasapainotusalgoritmeja. Se voi olla vuorovaikutuksessa useiden palveluntarjoajien (tai palvelujen löytämismekanismien tai orkestrointityökalujen) kanssa, kuten Kubernates, Docker, Etcd, Rest API, Mesos/Marathon, Swarm ja Zookeper.

Sen rakastettava ominaisuus on sen kyky hallita kokoonpanoa automaattisesti ja dynaamisesti, mikä löytää oikean kokoonpanon palveluillesi. Se tekee tämän skannaamalla infrastruktuurisi löytääkseen asiaankuuluvia tietoja ja selvittäessäsi, mikä palvelu palvelee mitä ulkomaanmaiden pyyntöjä. Palveluntarjoajat kertovat Træfɪkille, missä sovelluksesi tai mikropalvelusi sijaitsevat.

Træfɪkin muita ominaisuuksia tuetaan WebSocketsissa, HTTP/2: ssa ja GRPC: ssä, ja pikalataus (päivittää kokoonpanonsa jatkuvasti ilman uudelleenkäynnistystä), HTTPS: n avulla Let’s Encrypt -sertifikaatit (jokerivarmenteen tuki) ja paljastaa REST-sovellusliittymän. Se pitää myös pääsylokeja ja tarjoaa tietoja (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Træfɪk toimittaa myös yksinkertaisen HTML-pohjaisen verkkokäyttöliittymän, jota käytetään tapahtumien seuraamiseen. Se tukee myös katkaisijoita, uudelleenyrityspyyntöjä, nopeuden rajoituksia ja perustodennusta.

5. Apache-liikennepalvelin

Aikaisemmin Yahoon omistama kaupallinen tuote, joka myöhemmin luovutettiin Apache Foundationille, Apache Traffic Server on ilmainen, avoimen lähdekoodin nopea välimuistipalvelin eteenpäin ja taaksepäin-välityspalvelin.

Traffic Server toimii myös kuormituksen tasaajana ja voi osallistua joustaviin välimuistihierarkioihin. Yahoon liikenteen tiedetään käsittäneen yli 400 Tt päivittäistä liikennettä.

Siinä on joukko sisältöä koskevia pyyntöjä, suodattimia tai nimettömiä sisältöpyyntöjä, ja se on laajennettavissa API: n kautta, jonka avulla käyttäjät voivat luoda mukautettuja laajennuksia HTTP-otsikkojen muokkaamiseksi, ESI-pyyntöjen käsittelemiseksi tai uusien välimuistialgoritmien suunnittelemiseksi.

6. Kalmari-välityspalvelin

Squid on ilmainen, avoimen lähdekoodin ja tunnettu välityspalvelin ja Web-välimuistidemon, joka tukee erilaisia protokollia, kuten HTTP, HTTPS, FTP ja muuta. Siinä on käänteinen välityspalvelintila (httpd-accelerator), joka tallentaa välimuistiin saapuvat tiedot lähteville tiedoille.

Se tukee monipuolisia liikenteen optimointivaihtoehtoja, kulunvalvontaa, valtuutusta, puunkorjuutoimintoja ja paljon muuta.

7. Punta

A Pound on toinen ilmainen ja avoimen lähdekoodin, kevyt käänteinen välityspalvelin ja kuormituksen tasapainotin ja etupää web-palvelimille. Se on myös SSL-pääte (joka purkaa asiakkaiden HTTPS-pyynnöt ja lähettää ne tavallisena HTTP: nä taustapalvelimille), HTTP/HTTPS-puhdistusaine (joka tarkistaa oikeellisuuspyynnöt ja hyväksyy vain hyvin muodostetut pyynnöt) ja epäonnistuminen -palvelin.

8. Apache HTTP -palvelin

Viimeisenä mutta ei vähäisimpänä, meillä on Apache HTTP -palvelin (tunnetaan myös nimellä HTTPD), joka on maailman suosituin verkkopalvelin. Se voidaan myös ottaa käyttöön ja konfiguroida toimimaan käänteisenä välityspalvelimena.

Voit myös maksaa kassalle uuden lapsen, Skipperin. Se on ilmainen ja avoimen lähdekoodin HTTP-reititin ja käänteinen välityspalvelin palvelukokoonpanoon, mukaan lukien käyttötapaukset, kuten Kubernetes Ingress.

Se on kaikki mitä meillä oli sinulle tässä oppaassa. Lisätietoja jokaisesta tämän luettelon työkalusta on heidän verkkosivustoillaan. Älä unohda jakaa ajatuksiasi kanssamme alla olevan palautelomakkeen kautta.