8 galvenie atvērtā koda reversie starpniekserveri Linux


Reversais starpniekserveris ir starpniekservera veids, kas tiek izvietots starp klientiem un aizmugures/izejas serveriem, piemēram, HTTP serveris, piemēram, NGINX, Apache utt., Vai lietojumprogrammu serveri, kas rakstīti Nodejs, Python, Java, Ruby , PHP un daudzas citas programmēšanas valodas.

Tas ir vārteja vai starpniekserveris, kas pieņem klienta pieprasījumu, nodod to vienam vai vairākiem aizmugures serveriem un pēc tam ienes atbildi no servera un piegādā to atpakaļ klientam, tādējādi padarot to it kā saturu radies no paša reversā starpniekservera.

Parasti reversais starpniekserveris ir uz iekšpusi vērsts starpniekserveris, kas tiek izmantots kā “priekšgals”, lai kontrolētu un aizsargātu piekļuvi privātā tīkla aizmugures serveriem: tas parasti tiek izvietots aiz tīkla ugunsmūra.

Tas palīdz aizmugures serveriem sasniegt anonimitāti, lai uzlabotu to drošību. IT infrastruktūrā apgrieztais starpniekserveris var darboties arī kā lietojumprogrammas ugunsmūris, slodzes līdzsvarotājs, TLS terminators, tīmekļa paātrinātājs (kešatmiņā saglabājot statisko un dinamisko saturu) un daudz kas cits.

Šajā rakstā mēs pārskatīsim 8 galvenos atvērtā koda reversos starpniekserverus, kurus varat izmantot Linux sistēmā.

1. HAProksija

HAProxy (HAProxy, kas nozīmē augstas pieejamības starpniekserveri) ir bezmaksas, atvērta pirmkoda, ļoti ātra, uzticama un visaugstākās klases slodzes līdzsvarošanas un starpniekserveru programmatūra TCP un HTTP balstītām lietojumprogrammām, kas izveidota augstai pieejamībai.

HAProxy ir HTTP reversais starpniekserveris, TCP starpniekserveris un normalizētājs, SSL/TLS terminators/ierosinātājs/izlādētājs, kešatmiņas starpniekserveris, HTTP saspiešanas izkrautājs, satiksmes regulators, uz saturu balstīts slēdzis, FastCGI vārteja un daudz kas cits. Tā ir arī aizsardzība pret DDoS un pakalpojumu ļaunprātīgu izmantošanu.

To darbina notikumu virzīts, nebloķējošs motors, kas ļoti ātru I/O slāni apvieno ar prioritāriem balstītu, ar daudzu pavedienu plānotāju, kas ļauj viegli tikt galā ar desmitiem tūkstošu vienlaicīgu savienojumu. Jo īpaši HAProxy izmanto PROXY protokolu, lai klienta savienojuma informāciju nodotu serveru aizmugurē vai sākotnējā versijā, lai lietojumprogramma iegūtu visu nepieciešamo informāciju.

Dažas no HAProxy pamatfunkcijām ir starpniekserveris, SSL atbalsts, servera stāvokļu un sava stāvokļa uzraudzība, augsta pieejamība, slodzes līdzsvarošana, lipīgums (uzturēt apmeklētāju tajā pašā serverī pat dažādos pasākumos), satura maiņa, HTTP pārrakstīšana un novirzīšana, serveru aizsardzība, reģistrēšana, statistika un daudz kas cits.

2. NGINX

NGINX, bezmaksas, atvērtā koda, augstas veiktspējas un ļoti populārs HTTP serveris un reversais starpniekserveris. Tas darbojas arī kā IMAP/POP3 starpniekserveris. NGINX ir labi pazīstama ar augstu veiktspēju, stabilitāti, bagātīgu funkciju kopumu, vienkāršu un elastīgu konfigurāciju un zemu resursu patēriņu (īpaši mazu atmiņas apjomu).

Tāpat kā HAProxy, arī NGINX ir uz notikumiem balstīta arhitektūra, tāpēc tai nav problēmu tikt galā ar desmitiem tūkstošu vienlaicīgu savienojumu, jo tiek izmantots HAProxy PROXY protokols.

NGINX atbalsta paātrinātu reverso starpniekserveri ar kešatmiņu, izmantojot moduli ngx_http_proxy_module, kas ļauj pārsūtīt pieprasījumus citam serverim, izmantojot protokolus, kas nav HTTP, piemēram, FastCGI, uwsgi, SCGI un memchached.

Svarīgi ir tas, ka tas atbalsta slodzes līdzsvarošanu un kļūdu toleranci, kas ir būtiska liela mēroga izplatīto skaitļošanas sistēmu sastāvdaļa. Modulis ngx_http_upstream_module ļauj definēt aizmugures serveru grupas, lai izplatītu klientu pieprasījumus. Tas padara jūsu lietojumprogrammas izturīgākas, pieejamākas un uzticamākas, ļoti pielāgojamas, ar reakcijas laiku un caurlaidspēju. Turklāt attiecībā uz drošību tas atbalsta SSL/TLS izbeigšanu un tik daudz citu drošības funkciju.

Noderīgi raksti Nginx tīmekļa serverī, kurus jūs varētu vēlēties lasīt:

  • Kā instalēt Nginx tīmekļa serveri Ubuntu 20.04
  • Kā instalēt Nginx CentOS 8
  • Kā iespējot NGINX statusa lapu

3. Lakojiet HTTP kešatmiņu

Lakas HTTP kešatmiņa (vai Lakas kešatmiņa vai vienkārši Laka) ir bezmaksas, atvērtā koda, augstas veiktspējas un ļoti populāra kešatmiņā saglabāta reversās starpniekservera programmatūra, kas labāk pazīstama kā tīmekļa lietojumprogrammu paātrinātājs, un kas paredzēta HTTP veiktspējas uzlabošanai, izmantojot servera puses kešatmiņu.

Tas tiek izvietots starp klientu un HTTP tīmekļa serveri vai lietojumprogrammu serveri; katru reizi, kad klients pieprasa informāciju vai resursu no tīmekļa servera, Laka saglabā informācijas kopiju, tāpēc nākamajā reizē, kad klients pieprasīs to pašu informāciju, Laka to apkalpos, nenosūtot pieprasījumu tīmekļa serverim, tādējādi samazinot slodzi. serverī un, savukārt, paātrina tīmekļa satura piegādi.

Laka izmanto elastīgu konfigurācijas valodu, kas zināma kā Lakas konfigurācijas valoda (VLC), kas cita starpā ļauj sistēmas administratoriem konfigurēt, kā jāapstrādā ienākošie pieprasījumi, kāds saturs ir jāapkalpo, no kurienes un kā jāmaina pieprasījums vai atbilde. , un daudz vairāk.

Laka ir arī izvelkama - to var pagarināt, izmantojot lakas moduļus (VMOD), un lietotāji var rakstīt savus pielāgotos moduļus vai izmantot kopienas piedāvātos moduļus.

Galvenais lakas ierobežojums ir tā atbalsta trūkums SSL/TLS. Vienīgais veids, kā iespējot HTTPS, ir SSL/TLS terminatora vai izkraušanas ierīces, piemēram, HAProxy vai NGINX, izvietošana tā priekšā.

4. Træfɪk

Træfɪk (izrunā Traffic) ir bezmaksas, atvērtā koda, mūsdienīgs un ātrs HTTP reversais starpniekserveris un slodzes līdzsvarotājs mikropakalpojumu izvietošanai, kas atbalsta vairākus slodzes līdzsvarošanas algoritmus. Tas var mijiedarboties ar dažādiem pakalpojumu sniedzējiem (vai pakalpojumu atklāšanas mehānismiem vai orķestrēšanas rīkiem), piemēram, Kubernates, Docker, Etcd, Rest API, Mesos/Marathon, Swarm un Zookeper.

Tā piemīlīgā iezīme ir spēja automātiski un dinamiski pārvaldīt savu konfigurāciju, tādējādi atklājot pareizo konfigurāciju saviem pakalpojumiem. Tas tiek darīts, skenējot jūsu infrastruktūru, lai atrastu atbilstošu informāciju, un atklāj, kurš pakalpojums kādu ārējo pasauli pieprasa. Pakalpojumu sniedzēji paziņo Træfɪk, kur atrodas jūsu lietojumprogrammas vai mikropakalpojumi.

Træfɪk citas funkcijas tiek atbalstītas WebSockets, HTTP/2 un GRPC, kā arī karstā atkārtota ielāde (nepārtraukti atjaunina tās konfigurāciju bez restartēšanas), HTTPS, izmantojot Let’s Encrypt sertifikātus (aizstājējzīmju sertifikātu atbalsts), un pakļauj REST API. Tas arī glabā piekļuves žurnālus un nodrošina metriku (Rest, Prometheus, Datadog, Statsd, InfluxDB).

Arī Træfɪk tiek piegādāts ar vienkāršu HTML lietotāja tīmekļa saskarni, ko izmanto notikumu novērošanai. Tas atbalsta arī automātiskos slēdžus, atkārtotu mēģinājumu pieprasījumus, ātruma ierobežošanu un pamata autentifikāciju.

5. Apache trafika serveris

Kādreiz Yahoo piederošs komerciāls produkts, kas vēlāk tika nodots Apache Foundation, Apache Traffic Server ir bezmaksas, atvērtā koda un ātrs kešatmiņā darbojošais un atpakaļejošais starpniekserveris.

Satiksmes serveris darbojas arī kā slodzes līdzsvarotājs un var piedalīties elastīgās kešatmiņas hierarhijās. Ir zināms, ka Yahoo dienā satiksme ir pārsniegusi 400 TB.

Tajā ir iekļauts satura pieprasījumu uzturēšanas, filtrēšanas vai anonimizācijas komplekts, un to var paplašināt, izmantojot API, kas lietotājiem ļauj izveidot pielāgotus spraudņus, lai modificētu HTTP galvenes, apstrādātu ESI pieprasījumus vai izstrādātu jaunus kešatmiņas algoritmus.

6. Kalmāru starpniekserveris

Squid ir bezmaksas, atvērtā koda un plaši pazīstams starpniekserveris un tīmekļa kešatmiņas dēmons, kas atbalsta dažādus protokolus, piemēram, HTTP, HTTPS, FTP un daudz ko citu. Tam ir apgrieztās starpniekservera (httpd-akseleratora) režīms, kas saglabā kešatmiņā ienākošos izejošo datu pieprasījumus.

Tas atbalsta bagātīgas satiksmes optimizācijas iespējas, piekļuves kontroli, autorizāciju, mežizstrādes iespējas un daudz ko citu.

7. Mārciņa

Mārciņa ir vēl viens bezmaksas un atvērta pirmkoda, viegls reversās starpniekservera un slodzes līdzsvarotājs, kā arī tīmekļa serveru priekšgals. Tas ir arī SSL terminators (kas atšifrē klientu HTTPS pieprasījumus un nosūta tos aizmugures serveriem kā vienkāršu HTTP), HTTP/HTTPS sanitizer (kas pārbauda pareizības pieprasījumus un pieņem tikai labi izveidotus) un neizdodas - virs servera.

8. Apache HTTP serveris

Visbeidzot, mums ir Apache HTTP serveris (pazīstams arī kā HTTPD), kas ir vispopulārākais tīmekļa serveris pasaulē. To var arī izvietot un konfigurēt, lai darbotos kā pretējs starpniekserveris.

Turklāt jūs varat arī izrakstīties Skipper, kas ir jauns bērns blokā. Tas ir bezmaksas un atvērtā koda HTTP maršrutētājs un reversais starpniekserveris pakalpojumu sastāvam, ieskaitot tādus lietošanas gadījumus kā Kubernetes Ingress.

Tas ir viss, kas mums jums bija šajā ceļvedī. Lai iegūtu papildinformāciju par katru rīku šajā sarakstā, apmeklējiet viņu attiecīgās vietnes. Neaizmirstiet dalīties ar mums savās domās, izmantojot zemāk esošo atsauksmju veidlapu.