Server HTTP Apache | |
---|---|
Logo Apache | |
Tip de | server web și software de server |
Autor | Robert McCool [d] |
Dezvoltator | Apache Software Foundation [1] |
Scris in | C [3] [4] [5] […] |
Sistem de operare | Sistem de operare similar Microsoft Windows și Unix |
Limbi de interfață | Engleză |
Prima editie | 1995 |
ultima versiune | |
Licență | Licență Apache 2.0 [6] |
Site-ul web | httpd.apache.org _ |
Fișiere media la Wikimedia Commons |
Serverul Apache HTTP (este o abreviere distorsionată pentru engleză. un server neregulat ; printre utilizatorii ruși, traducerea Apache este în general acceptată ) este un server web gratuit .
Apache este un software multiplatform care acceptă sistemele de operare Linux , BSD , macOS , Microsoft Windows , Novell NetWare , BeOS .
Principalele avantaje ale Apache sunt fiabilitatea și flexibilitatea configurației. Vă permite să conectați module externe pentru a furniza date, să utilizați un SGBD pentru a autentifica utilizatorii, să modificați mesajele de eroare etc. Suportă IPv4 .
Serverul a fost scris la începutul anului 1995 și se crede că numele său este derivat din numele glumeț „un [server] neregulat” , deoarece a remediat erori în serverul NCSA HTTPd 1.3 World Wide Web de atunci. Ulterior, din versiunea 2.x, serverul a fost rescris și acum nu conține codul NCSA . Momentan, dezvoltarea se desfășoară în ramura 2.4, iar în versiunile 1.3, 2.0 și 2.2 se fac doar remedieri de securitate. În acest moment, cea mai recentă versiune a ramurii 2.4 este 2.4.46 (5 august 2020), pentru prima versiune este 1.3.42.
Serverul web Apache este dezvoltat și întreținut de o comunitate deschisă de dezvoltatori sub auspiciile Apache Software Foundation și este inclus în multe produse software , inclusiv baza de date Oracle și IBM WebSphere .
Din aprilie 1996 până în prezent a fost cel mai popular server HTTP de pe Internet . Statisticile Netcraft arată următoarele date de utilizare Apache:
Apache are o cotă de piață în Rusia de până la 17,45%. Este cel mai popular server web după NGINX cu o cotă de piață de 64,89% [11] .
Nucleul Apache include funcționalități de bază, cum ar fi gestionarea fișierelor de configurare, protocolul HTTP și un sistem de încărcare a modulelor. Nucleul (spre deosebire de module) este dezvoltat în întregime de Apache Software Foundation , fără implicarea programatorilor externi.
Teoretic, nucleul apache poate funcționa în forma sa pură, fără utilizarea modulelor. Cu toate acestea, funcționalitatea unei astfel de soluții este extrem de limitată.
Nucleul Apache este scris în întregime în limbajul de programare C.
Sistemul de configurare Apache se bazează pe fișiere de configurare bazate pe text . Are trei niveluri de configurare condiționată:
Are propriul limbaj al fișierului de configurare bazat pe blocuri de directive. Aproape toți parametrii kernelului pot fi modificați prin fișierele de configurare, până la controlul MPM. Majoritatea modulelor au proprii lor parametri.
Unele module folosesc fișiere de configurare a sistemului de operare (de exemplu, /etc/passwd și /etc/hosts ) în munca lor.
În plus, parametrii pot fi setați prin comutatoarele din linia de comandă .
Există multe modele simetrice de multiprocesare pentru serverul web Apache . Iată pe cele principale:
Nume | Dezvoltator | Sistem de operare acceptat | Descriere | Scop | stare |
---|---|---|---|---|---|
muncitor | Apache Software Foundation | Linux , FreeBSD | Model hibrid multiprocesor-multithread. În timp ce menține stabilitatea soluțiilor multiprocesor, vă permite să serviți un număr mare de clienți cu o utilizare minimă a resurselor. | Servere web cu încărcare medie. | Grajd. |
pre-furca | Apache Software Foundation | Linux , FreeBSD | MPM, bazat pe pre-crearea proceselor separate, nu utilizează mecanismul thread-urilor. | Securitate și stabilitate mai mare datorită izolării proceselor unele de altele, menținând compatibilitatea cu bibliotecile vechi care nu acceptă thread-uri. | Grajd. |
copil | Apache Software Foundation | linux | Model hibrid, cu un număr fix de procese. | Servere foarte încărcate, capacitatea de a rula procese copil folosind un nume de utilizator diferit pentru a îmbunătăți securitatea. | În dezvoltare, instabil. |
netware | Apache Software Foundation | Novell NetWare | Model cu mai multe fire optimizat pentru mediile NetWare. | Servere Novell NetWare | Grajd. |
winnt | Apache Software Foundation | Microsoft Windows | Un model cu mai multe fire create pentru sistemul de operare Microsoft Windows . | Servere care rulează Windows Server . | Grajd. |
Apache-ITK | Steinar H Gunderson | Linux , FreeBSD | MPM bazat pe modelul prefurcă. Permite fiecărei gazde virtuale să ruleze sub un uid și gid separat . | Servere găzduite, servere critice pentru izolarea utilizatorilor și contabilitatea resurselor. | Grajd. |
cititor | Sean Gabriel Heacock | Linux , FreeBSD | Model bazat pe MPM percopil. Permite fiecărei gazde virtuale să ruleze sub un uid și gid separat . Nu folosește fire. | Asigurarea securității sporite, lucrând cu biblioteci care nu acceptă fire. | Lansare stabilă din 4 octombrie 2007 , lansare experimentală din 10 septembrie 2009 . |
eveniment | Apache Software Foundation | Linux , FreeBSD | Modelul folosește fire de execuție, iar sondarea sigură pentru fire se bazează pe worker. este conceput pentru a servi mai multe solicitări simultan, prin descărcarea unor procesări către firele de execuție, eliberând firele de lucru pentru a răspunde noilor solicitări. | Oferă performanță îmbunătățită. nu funcționează bine pe platformele mai vechi cărora le lipsește un multithreading bun, dar cerința EPoll sau KQueue face acest lucru nesolubil. | Grajd. |
Apache HTTP Server acceptă modularitatea . Există mai mult de 500 de module [12] care îndeplinesc diverse funcții. Unele dintre ele sunt dezvoltate de echipa Apache Software Foundation , dar majoritatea sunt de către dezvoltatori individuali open source .
Modulele pot fi fie incluse în server în momentul compilării , fie încărcate dinamic, prin directivele fișierului de configurare.
Modulele fac lucruri precum:
Unele aplicații web, cum ar fi panourile de control ISPmanager și VDSmanager , sunt implementate ca un modul Apache.
Apache are un mecanism de gazdă virtuală încorporat . Vă permite să serviți pe deplin multe site-uri ( nume de domenii ) pe o singură adresă IP , afișând propriul conținut pentru fiecare dintre ele.
Pentru fiecare gazdă virtuală, puteți specifica propriile setări de kernel și modul, puteți restricționa accesul la întregul site sau la fișiere individuale. Unele MPM, cum ar fi Apache-ITK, vă permit să rulați un proces httpd pentru fiecare gazdă virtuală cu un uid și un ghid separat .
Există și module care vă permit să luați în considerare și să limitați resursele serverului ( CPU , RAM , trafic ) pentru fiecare gazdă virtuală.
Există multe module care adaugă suport pentru diverse limbaje de programare și sisteme de dezvoltare la Apache.
Acestea includ:
În plus, Apache acceptă mecanismele CGI și FastCGI , ceea ce vă permite să executați programe în aproape toate limbajele de programare, inclusiv C , C++ , Lua , sh , Java .
Apache are diverse mecanisme de securitate și control al accesului la date. Principalele sunt:
Unele module MPM au capacitatea de a porni fiecare proces Apache folosind un uid și un gid diferit cu utilizatorul și grupul de utilizatori corespunzător.
Există, de asemenea, un mecanism suexec utilizat pentru a rula scripturi și aplicații CGI cu drepturi de utilizator și acreditări.
Pentru a implementa criptarea datelor transmise între client și server, se folosește mecanismul SSL , implementat prin biblioteca OpenSSL . Certificatele X.509 sunt folosite pentru autentificarea serverului web .
Există instrumente de securitate externe, cum ar fi mod_security .
Începând cu versiunea 2.0, serverul a devenit posibil să determine locația utilizatorului . Mesajele de eroare și evenimente trimise către browser sunt acum în mai multe limbi și utilizează tehnologia SSI .
De asemenea, este posibil să se implementeze prin intermediul serverului afișarea diferitelor pagini pentru utilizatori cu locații diferite. Apache acceptă multe codificări, inclusiv Unicode , care vă permite să utilizați pagini create în orice codificare și în orice limbă.
Administratorul poate seta pagini și handlere personalizate pentru toate erorile și evenimentele HTTP , cum ar fi 404 (Negăsit) sau 403 (Interzis). Inclusiv există posibilitatea de a rula scripturi și de a afișa mesaje în diferite limbi.
În versiunile 1.3 și mai vechi, a fost implementat mecanismul Server Side Includes, care vă permite să generați în mod dinamic documente HTML pe partea serverului.
SSI este gestionat de modulul mod_include inclus în distribuția de bază a Apache.
Apache Software Foundation | |||||||
---|---|---|---|---|---|---|---|
Proiecte de nivel superior |
| ||||||
Subproiecte |
| ||||||
Apache Web |
| ||||||
Alte proiecte | |||||||
Dezvoltare proiecte ( Incubator ) |
| ||||||
Proiecte scoase din funcțiune ( Mansarda ) | |||||||
|