Atsisiuntimai

10 geriausių „Linux“ atvirojo kodo žiniatinklio serverių

10 geriausių „Linux“ atvirojo kodo žiniatinklio serverių

Jūs skaitote šį straipsnį iš svetainės, kurią palaiko atviro kodo žiniatinklio serveris, vien todėl, kad atvirojo kodo žiniatinklio serveriai valdo daugiau nei 80% svetainių ir programų. Terminas žiniatinklio serveris gali būti vartojamas pakaitomis, nurodant aparatinę ar programinę įrangą, naudojamą turinio pateikimui galutiniams vartotojams ar klientams per HTTP.

Nuo 90-ųjų pradžios interneto serveriai buvo kuriami ir nuolat tobulinami. Yra įvairių tipų žiniatinklio serveriai ir jie gali būti sukurti specifiniams poreikiams, tam tikroms technologijoms arba kaip specialios parinktys tam tikroms korporacijoms.

Šiame straipsnyje bus išvardyti keli patikimi ir populiarūs atvirojo kodo žiniatinklio serverio projektai, kuriuos galite įdiegti ir paleisti savo programą ar svetainę.

„Linux“ atvirojo kodo žiniatinklio serveriai

Žiniatinklio serveris gali nurodyti visą aparatinę ir programinę įrangą arba konkrečiai į programinę įrangą, kuri priima ir aptarnauja klientų HTTP užklausas.

Kaip programinė įranga, žiniatinklio serveris kontroliuoja ir valdo, kaip priglobti failai pateikiami klientams. Tai gali būti HTTP serveris, suprantantis URL ir HTTP arba HTTP / 2 protokolus.

Kaip aparatinė įranga, žiniatinklio serveris yra kompiuteris, kuriame talpinama žiniatinklio serverio programinė įranga ir svetainės komponentų failai, pvz., HTML puslapiai, CSS stiliaus lapai, vaizdai ar „JavaScript“ failai.

Kai vartotojui, kaip ir jums, reikia failo ar informacijos, priglobtos žiniatinklio serveryje, užklausai pateikti naudosite žiniatinklio naršyklę. Užklausa siunčiama į atitinkamą žiniatinklio serverį (aparatinę įrangą), kur HTTP serveris priima užklausą, suranda reikiamą failą ir per HTTP siunčia jį atgal į kliento naršyklę.

Statinis žiniatinklio serveris nusiųs priglobtus failus į jūsų naršyklę.
Dinaminiame žiniatinklio serveryje yra duomenų bazė ir programų serveris, kurie atnaujina priglobtus failus prieš siųsdami juos į naršyklę per HTTP.

1: „Apache“ HTTP tinklo serveris

Iš pradžių išleista 1995 m., Tai yra populiariausias interneto serveris. Pagal žiniatinklio serverių iš w3tech naudojimo statistiką.com, „Apache“ valdo apie 33 metus.9% žiniatinklio programų ir svetainių visame pasaulyje. Jis išleistas pagal „Apache License“ versiją 2, kuriai reikia išsaugoti pranešimus apie autorių teises ir atsisakymus, tačiau nereikia, kad modifikuotos versijos būtų platinamos naudojant tą pačią licenciją. Jis veikia visose populiariose operacinėse sistemose, tokiose kaip „Linux“, panašūs į „Unix“, „Windows“, „Mac OS X“, „FreeBSD“, „Solaris“, „Novell Netware“, OS / 2 ir kt.

Apache HTTP yra parašytas C kalba ir naudoja modulinę architektūrą, kuri yra labai pritaikoma, ir ji gali įkelti papildomų modulių, kad išplėstų savo funkcijas. Tai apima mod_proxy, kuris leis jūsų serveryje naudoti proxy / gateway, mod_proxy_balancer leis balansuoti visus palaikomus protokolus. mod_file_cache talpyklai, mod_ftp FTP palaikymui įkėlimams ir atsisiuntimams arba mod_ssl SSL / TLS šifravimo protokolo palaikymui.
Kiti pastebimi moduliai yra tarpinis modulis (mod_proxy), mod_rewrite (URL perrašymo modulis), mod_include ir mod_ext_filter.

Apache taip pat yra populiarus glaudinimo metodas, įtrauktas į išorinį plėtinio modulį mod_gzip. Jis sukurtas siekiant sumažinti per HTTP teikiamų tinklalapių dydį. Pasirinktiniai žurnalų failai (mod_log_config) tvarko žurnalo failus, kuriuos galima analizuoti per žiniatinklio naršyklę. Jame yra „ModSecurity“, skirtas valdyti įsibrovimų aptikimą ir prevenciją žiniatinklio programoms.

Pageidaujamos savybės

Nuo 2 versijos.4, „Apache“ palaiko HTTP / 2 per mod_http / 2, o tai pagerina našumą. „Apache“ buvo laikomas šiek tiek lėtesniu nei „Nginx“ (asinchroninis, įvykių valdomas interneto serveris), dėl kurio „Nginx“ buvo vis labiau pritaikyta, tačiau vartotojai matė geresnį našumą nuo „Apache 2“.2.

2: „Apache Tomcat“ tinklo serveris

„Apache Tomcat“ yra populiarus įmonės lygio interneto serveris, prieinamas rinkoje. Jis sukurtas norint priimti „Java“ žiniatinklio sprendimus, kurie yra gana dažnai ir gausiai naudojami didelėse organizacijose dėl didelio mastelio, našumo ir „Java“ ekosistemai prieinamų įrankių skaičiaus. „Apache Tomcat“ yra subrendęs interneto serveris, kurio sukūrimas kredituojamas Jamesui Duncanui Davidsonui iš „Apache“ fondo. „Tomcat“ daugiau nei prieš 20 metų kūrė „Apache“ programinės įrangos fondas kaip „Apache“ tinklo serveris.

„Tomcat“ yra „Java“ servletas, turintis išplėstinę sąveikos su „Java“ servletais funkcionalumą, ir jis įgyvendina tokias technines specifikacijas kaip „JavaServer Pages“ (JSP) ir „Java Expression Language“ (Java EL).

„Tomcat“ yra pagamintas iš kelių komponentų, tokių kaip „Coyote“, „Catalina“, „Jasper“, „Cluster“ ir kt. „Catalina“ yra servleto talpykla, o „Coyote“ yra jungties komponentas, palaikantis HTTP 1.1. kaip interneto serveris. Tai leidžia „Catalina“ („Java“ servletas arba JSP konteineris) veikti kaip žiniatinklio serveris, kuris teikia vietinius failus kaip HTTP dokumentus. „Jasper“ yra „Tomcat“ JSP variklis ir jis analizuoja JSP failus, kad juos sukompiliuotų į „Java“ kodą kaip servletus. „Cluster“ komponentas valdo dideles programas naudodamas apkrovos balansavimą ir kitus metodus.

Norėdami palengvinti projektus tiek „Java“, tiek PHP, galite paleisti „Apache Tomcat“ kartu su „Apache HTTP“. „Tomcat“ taip pat palaiko „AWS“ („Amazon Web Services“), todėl idealiai tinka debesų sprendimams. „Eclipse IDE“ palaiko „Tomcat“, todėl kūrėjams lengva kurti ir diegti programas.

Pageidaujamos savybės

„Apache Tomcat“ tinklo serveris yra geresnis pasirinkimas „Java“ internetinėms programoms. Apache Tomcat dažnai įtraukiamas į kitus atvirojo kodo „Java“ programų serverius, tokius kaip „JBoss“, „Wildfly“ ir „Glassfish“.

3: „Nginx“ tinklo serveris

„Nginx“ skaityti „Engine-x“ yra atviro kodo, didelio našumo ir tvirtas žiniatinklio serveris. Jį galima įdiegti kaip apkrovos balansavimo priemonę, atvirkštinį tarpinį serverį, IMAP / POP3 tarpinį serverį ir API šliuzą. Igoris Sysoevas jį sukūrė 2002 m. Kaip atsakymą į C10K problemą. „C10k“ problema yra tinklo lizdų ir žiniatinklio serverių optimizavimo problema, kad būtų galima apdoroti dešimt tūkstančių vienu metu veikiančių ryšių ir klientų. „Nginx“ populiarumas išaugo maždaug 33 metais.7% visų svetainių.

„Nginx“ remiasi asinchronine įvykių valdoma architektūra, kad galėtų tvarkyti daugybę vienu metu vykstančių seansų. Jis tapo populiarus tarp administratorių dėl mažo išteklių naudojimo, didelio suderinamumo ir mastelio. Tai idealiai tinka talpinti didelio srauto svetaines ir gali apdoroti iki 500 000 užklausų per sekundę, naudodamas mažai procesoriaus.

„Nginx“ gali būti naudojamas kaip atskiras tinklo serveris arba kaip statinio turinio serveris priešais kitą tinklo serverį. Be to, galite įdiegti „Nginx“, kad aptarnautų dinaminį HTTP turinį tinkle, naudodami scenarijų, „FastCGI“, „WSGI“ programų serverių arba „Phusion Passenger“ modulių SCGI tvarkykles.

Pageidaujamos savybės

„Nginx“ turi dvi nustatytas versijas - „OSS Nginx“ ir „Nginx Plus“. „Nginx Plus“ siūlo papildomas funkcijas, tokias kaip aktyvus sveikatos tikrinimas, sesijų atkaklumas, DNS paslaugų aptikimo integravimas, „Datalog“, „Dynatrace New Relic“ papildiniai, talpyklos valymo API, „AppDynamic“, „Active-Active HA“ su sinchronizacijos konfigūracija. „Nginx Plus“ API palaiko raktų vertės parduotuves.

„Nginx“ buvo sukurtas konkuruoti su „Apache“ serveriu, kad jis teiktų statinius failus, naudotų mažiau atminties ir rastų atsakymus į „c10k“ problemą. Galime drąsiai teigti, kad šioje kategorijoje „Apache“ nugalėjo rankas. Štai kodėl ją įdiegė populiarios didelio srauto svetainės, tokios kaip „Facebook“, „LinkedIn“ ir „Twitter“. Sužinokite daugiau apie projektą iš oficialaus „Nginx“ pagrindinio puslapio.

4: mazgas.js tinklo serveris

Mazgas.js yra serverio veikimo trukmės aplinka, naudojama kuriant žiniatinklio programas „Javascript“. Jis pridedamas prie HTTP modulio, kad išplėstų jo, kaip žiniatinklio serverio, funkcionalumą. Mazgas.Iš pradžių 2009 m. js parašė Ryanas Dahlas, o šiuo metu jis valdo 1.2% visų svetainių.

Mazgas.js įgyvendina įvykių valdomą architektūrą, galinčią asinchroninį įvestį / išvestį. Tai optimizuoja pralaidumą ir mastelį, o žiniatinklio programose galite efektyviai įgyvendinti bendravimą realiuoju laiku. Pagrindinis skirtumas tarp mazgo.JS ir kiti žiniatinklio serveriai yra tai, kad tai yra žiniatinklio kūrimo rinkinio, sudaryto iš CSS, HTML ir „JavaScript“ kamino, dalis.
Mazgas.js projektą valdo mazgas.js fondas ir yra prieinamas pagal įvairias licencijas. Sužinokite daugiau iš Mazgo.js projekto svetainė.

5: „Caddy“ tinklo serveris

„Caddy“ yra greitas ir galingas daugiaplatformis interneto serveris, atvirkštinis tarpinis serveris, API šliuzai ir apkrovos balanseris. „Caddy“ projektą sukūrė Mathewas Holtas ir jis parašytas „Go“ kalba. Tai yra nauja sistema, kuri atvirojo kodo sistemoje kaip alternatyva „Apache“ žiniatinklio serveriui labai sulaukia stebėjimo ir dėmesio.

„Caddy“ yra sukurtas be jokių priklausomybių, todėl yra nešiojamas, jį lengva įdiegti ir naudoti įvairiuose platinimuose. „Caddy“ palaiko tokias funkcijas kaip „IPv6“, „Markdown“, „WebSockets“, „FastCGI“, šablonus ir kt. „Caddy“ pagal numatytuosius nustatymus suaktyvina HTTPS svetainėms, turinčioms tinkamus domenų vardus, ir nukreipia HTTP užklausas į HTTPS. Sertifikatus jis gauna paleidimo metu ir atnaujina juos per visą serverio tarnavimo laiką.

Įdomu tai, kad ji turi „pagal pareikalavimą TLS“ funkciją, kuri siūlo alternatyvų konfigūravimo metodą, leidžiantį „Caddy“ gauti sertifikatus tik prireikus per TLS paspaudimus. Jį galima įsigyti visuose pagrindiniuose platinimuose, pvz., MAC, „Windows“, „Android“, „Linux“, BSD ir „Solaris“.

Pageidaujamos savybės

„Caddy“ yra puikus kandidatas vartotojui, kuris siekia paprastumo ir džiaugiasi dirbdamas su numatytosiomis konfigūracijomis. Tai idealus žiniatinklio serveris, skirtas paleisti programas, parašytas GO. Pagal „w3tech“, šiuo metu jis įgalina 0.1% visų svetainių.

6: „Eclipse Jetty“ tinklo serveris

„Eclipse Jetty“ yra suprojektuotas ir pastatytas kaip HTTP serveris, HTTP klientas ir „javax“ servleto konteineris, skirtas statiniam ir dinaminiam turiniui aptarnauti kaip atskiram arba įterptam egzemplioriui. „Jetty“ tinklo serverį ir kitus pagrindinius komponentus prižiūri ir prižiūri „Eclipse Foundation“.
Jetty yra lengvas ir labai keičiamo dydžio interneto serveris ir servleto variklis. Jetty yra visiškai asinchroninis žiniatinklio serveris, orientuotas į komponentus ir kurį galima lengvai įterpti į kitas programas. Jis palaiko žiniatinklio protokolus, tokius kaip HTTP, HTTP / 2 ir „WebSocket“. Šios technologijos įgyvendina didelės apimties, mažo delsos, maksimalaus našumo architektūrą, išlaikydamos jos paprastumą ir suderinamumą. Jis gali pasiekti puikių rezultatų, naudodamas dešimtis tūkstančių tuo pačiu metu atliekamų HTTP ir „WebSocket“ ryšių.

Prieplauka turi nedidelį pėdsaką, kuris leidžia interneto kūrėjams efektyviai įdiegti ir sukonfigūruoti prieplauką bet kurioje aplinkoje, nesijaudinant dėl ​​nepageidaujamos pridėtinės ar atminties naudojimo. Turėdami nedidelį atminties plotą, galite paleisti daugiau serverio egzempliorių virtualioje aparatinėje įrangoje, todėl tai yra gera galimybė diegiant debesį ir infrastruktūrą.

Pageidaujamos savybės

„Eclipse“ buvo pritaikyta daugelyje projektų, tokių kaip „Apache ActiveMQ“, „Google App Engine“, „Alfresco“, „Apache Geronimo“, „Apache Maven“, „Apache Spark“, „Eclipse“ ir „Twitter“ srautinio perdavimo API. Sužinokite daugiau čia.

7: „Lighttpd“ tinklo serveris

„Lighttpd“ arba „Lighty“ yra nemokamas ir atviro kodo interneto serveris, sukurtas kritiškai svarbioms programoms. Jis yra saugus, greitas, lankstus ir jo mažiausias pėdsakas yra mažesnis nei 1 MB. Jo nedidelis plotas daro jį labai ekonomišku naudojant serverio išteklius ir procesoriaus naudojimą. „Lighttpd“ platinamas pagal BSD licenciją ir yra palankus dėl savo paprastumo, našumo ir palaikymo modulių.

„Lighttpd“ yra sukurtas pagal asinchroninį užklausų tvarkymo modelį, kuris yra būtinas tvarkant ir valdant didelius kiekius lygiagrečių ryšių, todėl tai yra ideali galimybė efektyviai veikiančioms interneto programoms. Kai kas gali sakyti, kad tai atspindi „Nginx“ architektūrą. Jis palaiko „FastCGI“, CGI ir SCGI, kad jūsų interneto serveris susietų su kitomis programomis. Jis taip pat palaiko programas, parašytas kitomis kalbomis, tokiomis kaip Python, Perl, PHP ir Ruby, kurios yra populiarios kūrėjų kalbos.

Kitos pažangios „Lighty“ funkcijos yra: Auth, URL perrašymas, SSL / TLS palaikymas, virtualusis priegloba ir HTTP išvesties glaudinimas naudojant mod_compress modulį.

Pageidaujamos savybės

„Lighttpd“ yra vienos gijos tinklo serveris, kuris gali lengvai apdoroti kelis šimtus užklausų per sekundę ir yra geras pasirinkimas vartotojams, susiduriantiems su problemomis mažai atmintyje ir mažai procesoriaus turinčiose aplinkose. „Lighty“ natūraliai veikia „Linux / Unix“ sistemose, tačiau galite ją paleisti ir „Microsoft Windows“ platformoje. Sužinokite daugiau apie jo naudojimo statistiką, licencijavimą ir palaikymą „Lighttpd“ pagrindiniame puslapyje.

8: „OpenLiteSpeed“ tinklo serveris

„OpenLiteSpeed“ yra atviro kodo „LiteSpeed ​​Enterprise“ tinklo serverio leidimo alternatyva. Jis sukurtas paprastumui, saugumui, optimizavimui ir turi visas pagrindines „Enterprise“ versijos savybes.

„OpenLiteSpeed“ sukurta remiantis įvykių valdoma, išteklių optimizuota architektūra. Jis pateikiamas su intuityvia „WebAdmin“ vartotojo sąsaja, skirta valdyti svetaines ir stebėti skirtingus serverio metrikos rinkinius. „OpenLiteSpeed“ yra optimizuotas vykdyti scenarijus, sukurtus įvairiomis kalbomis, tokiomis kaip „Perl“, „Python“, „Ruby“ ir „Java“. Jis palaiko IPv6 ir SSL / TLS.

Pageidaujamos savybės

„OpenLiteSpeed“ yra universalus ir galite jį sukonfigūruoti kaip apkrovos balansavimo priemonę arba atvirkštinį tarpinį serverį. „OpenLiteSpeed“ galima nemokamai atsisiųsti ir galima įsigyti pagal „GPLv3“ licenciją. Tai yra geras pasirinkimas „WordPress“ turinio svetainėms.

9: H2O tinklo serveris

H2O yra naujos kartos atvirojo kodo HTTP serveris. Jis pasižymi greitesniu atsakymo laiku ir mažesniu procesoriaus panaudojimu, palyginti su senesnės kartos žiniatinklio serveriais. „H2O“ yra suprojektuotas ir sukurtas nuo pat pradžių, kad būtų sukurtos visapusiškos HTTP / 2 diegimo galimybės.

„H2O“ vartotojai gali pasinaudoti naujomis HTTP / 2 funkcijomis, tokiomis kaip delsos optimizavimas, serverio stumdymas, prioritetinio turinio aptarnavimas ir serverio stumdymas. Šios funkcijos gali pasinaudoti šiuolaikinėmis naršyklės funkcijomis.

Pageidaujamos savybės

H20 parašytas C programavimo kalba ir taip pat gali būti naudojamas kaip biblioteka. H2O galima įsigyti pagal MIT licenciją. Sužinokite daugiau apie H2O naudojimo statistiką.

10: „Cherokee“ tinklo serveris

„Cherokee“ yra lengvas, greitas, lankstus ir puikiai veikiantis atviro kodo, kelių platformų tinklo serveris. Jis buvo sukurtas kaip asmeninio tobulėjimo projektas, tačiau išaugo į padorų interneto serverį, veikiantį „Linux“, BSD, „Solaris“, MAC ir „Windows“.

„Cherokee“ įtraukia mūsų sąrašą dėl jo paprastumo. Jame yra draugiška interneto sąsaja ir jums nereikia valdyti daugybės komandinės eilutės konfigūracijų, kad ji veiktų ir veiktų.
Jis palaiko tokias technologijas kaip „FastCGI“, CGI, SSI, SCGI, PHP, TLS ir SSL šifruoti ryšiai, „VirtualHosts“, apkrovos balansavimas ir „Apache“ suderinami žurnalo failai.

„Cherokee“ gali valdyti tuo pačiu metu veikiančias jungtis esant mažai atminties ir pagerina aparatūros našumą. Jis turi modulinę architektūrą, kurią galima modifikuoti ir išplėsti per administravimo vedlį, kad būtų galima atlikti konkrečias užduotis, išplėsti programas ir paleisti sistemas.

Pageidaujamos savybės

Nepaisant to, kad jis nėra aktyviai plėtojamas, jis yra geras interneto serveris paprastiems projektams. Jis palaiko PHP, „Django“, „Ruby on Rails“, „ColdFusion“, „Alfresco“, „Symfony“, „GNU Mailman“, .NET su „Mono“, „rTorrent“ ir „Zend Engine“, kurie suteikia daugybę alternatyvų kuriant savo projektą.

Mokykis bandydamas

Jei pradedate naudotis žiniatinklio serveriais, išbandykite LEMP („Linux“, „Nginx“, „MySQL“, PHP) arba „LAMP“ („Linux“, „Apache“, „MySQL“, PHP) paketus. Šiuos paketus galite lengvai įdiegti naudodami paprastus diegimo įrankius. Jie taip pat yra jūsų „Linux“ paketų tvarkyklėje. Tai suteiks jums plačią praktinę patirtį, kaip veikia interneto serveriai.

Įtraukiau keletą populiarių interneto serverių („Apache“, „Nginx“), naujesnius („H2O“, „Node“).js) ir pažvelgė į „Jetty“ tinklo serverį, palaikomą „Java“ technologijų. Šis sąrašas anaiptol nėra platus, o atlikę daugiau tyrimų galite atrasti kitų žiniatinklio serverių technologijų, kurias galite išbandyti ar naudoti savo projekte.

Valdykite ir valdykite pelės judėjimą tarp kelių „Windows 10“ monitorių
„Dual Display Mouse Manager“ leidžia jums valdyti ir konfigūruoti pelės judėjimą tarp kelių monitorių, sulėtinant jo judėjimą šalia sienos. „Windows 1...
„WinMouse“ leidžia tinkinti ir pagerinti pelės žymeklio judėjimą „Windows“ kompiuteryje
Jei norite pagerinti numatytąsias pelės žymiklio funkcijas, naudokite nemokamą programinę įrangą „WinMouse“. Tai prideda daugiau funkcijų, kurios padė...
Pelės kairiuoju pelės mygtuku mygtukas neveikia „Windows 10“
Jei naudojate specialią pelę su savo nešiojamuoju kompiuteriu arba staliniu kompiuteriu, tačiau neveikia pelės kairysis mygtukas dėl tam tikrų priežas...