Apache HTTP-server

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 4. maj 2022; checks kræver 2 redigeringer .
Apache HTTP-server

Apache logo
Type webserver og serversoftware
Forfatter Robert McCool [d]
Udvikler Apache Software Foundation [1]
Skrevet i C [3] [4] [5] […]
Operativ system Microsoft Windows og Unix-lignende operativsystem
Interface sprog engelsk
Første udgave 1995
nyeste version
Licens Apache-licens 2.0 [6]
Internet side httpd.apache.org
 Mediefiler på Wikimedia Commons

Apache HTTP-server (er en forvrænget forkortelse for engelsk.  en patchy server ; blandt russiske brugere er oversættelsen af ​​Apache generelt accepteret ) er en gratis webserver .

Apache er en cross-platform software , der understøtter Linux , BSD , macOS , Microsoft Windows , Novell NetWare , BeOS -operativsystemer .

De vigtigste fordele ved Apache er pålidelighed og konfigurationsfleksibilitet. Det giver dig mulighed for at tilslutte eksterne moduler til at levere data, bruge en DBMS til at godkende brugere, ændre fejlmeddelelser osv. Understøtter IPv4 .

Historie

Serveren blev skrevet i begyndelsen af ​​1995 , og dens navn menes at være afledt af  det jokulære navn "en usammenhængende [server]"  ,  da den rettede fejl i den dengang så populære NCSA HTTPd 1.3 World Wide Web- server. Senere, fra version 2.x, blev serveren omskrevet og indeholder nu ikke NCSA -koden . I øjeblikket udføres udviklingen i 2.4-grenen, og der laves kun sikkerhedsrettelser i version 1.3, 2.0 og 2.2. I øjeblikket er den seneste version af 2.4-grenen 2.4.46 (5. august 2020), for den første version er den 1.3.42.

Apache-webserveren er udviklet og vedligeholdt af et åbent fællesskab af udviklere i regi af Apache Software Foundation og er inkluderet i mange softwareprodukter , herunder Oracle-databasen og IBM WebSphere .

Fra april 1996 til i dag har det været den mest populære HTTP -server på internettet . Netcraft -statistikker viser følgende Apache-brugsdata:

Apache har en markedsandel i Rusland på op til 17,45%. Det er den mest populære webserver efter NGINX med en markedsandel på 64,89% [11] .

Arkitektur

Core

Apache-kernen inkluderer kernefunktionalitet såsom konfigurationsfilhåndtering, HTTP-protokollen og et modulindlæsningssystem. Kernen (i modsætning til moduler) er fuldstændig udviklet af Apache Software Foundation , uden involvering fra eksterne programmører.

Teoretisk set kan apache-kernen fungere i sin rene form, uden brug af moduler. Funktionaliteten af ​​en sådan løsning er dog yderst begrænset.

Apache-kernen er udelukkende skrevet i programmeringssproget C.

Konfigurationssystem

Apache-konfigurationssystemet er baseret på tekstbaserede konfigurationsfiler . Den har tre betingede konfigurationsniveauer:

Det har sit eget konfigurationsfilsprog baseret på blokke af direktiver. Næsten alle kerneparametre kan ændres gennem konfigurationsfiler, op til MPM-kontrol. De fleste af modulerne har deres egne parametre.

Nogle moduler bruger operativsystemets konfigurationsfiler (f.eks . /etc/passwd og /etc/hosts ) i deres arbejde.

Derudover kan parametre indstilles via kommandolinjekontakter .

Multiprocessor-modeller (MPM)

Der er mange symmetriske multiprocessing -modeller til Apache-webserveren . Her er de vigtigste:

Navn Udvikler Understøttet OS Beskrivelse Formål Status
arbejder Apache Software Foundation Linux , FreeBSD Hybrid multiprocessor-flertrådsmodel. Samtidig med at stabiliteten af ​​multiprocessorløsninger bevares, giver det dig mulighed for at betjene et stort antal klienter med minimal brug af ressourcer. Middelbelastede webservere. Stabil.
forgaffel Apache Software Foundation Linux , FreeBSD MPM, baseret på præ-oprettelse af separate processer, bruger ikke trådmekanismen. Større sikkerhed og stabilitet på grund af isolering af processer fra hinanden, opretholdelse af kompatibilitet med gamle biblioteker, der ikke understøtter tråde. Stabil.
barn Apache Software Foundation linux Hybrid model, med et fast antal processer. Højt belastede servere, muligheden for at køre underordnede processer ved hjælp af et andet brugernavn for at forbedre sikkerheden. I udvikling, ustabil.
netware Apache Software Foundation Novell NetWare Multi-threaded model optimeret til NetWare-miljøer. Novell NetWare- servere Stabil.
vinde Apache Software Foundation Microsoft Windows En multi-threaded model skabt til Microsoft Windows -operativsystemet . Servere, der kører Windows Server . Stabil.
Apache-ITK Steinar H Gunderson Linux , FreeBSD MPM baseret på prefork-modellen. Tillader hver virtuel vært at køre under en separat uid og gid . Hostede servere, servere, der er vigtige for brugerisolering og ressourceregnskab. Stabil.
gennemlæser Sean Gabriel Heacock Linux , FreeBSD Model baseret på MPM per barn. Tillader hver virtuel vært at køre under en separat uid og gid . Bruger ikke tråde. Sikring af øget sikkerhed, arbejde med biblioteker, der ikke understøtter tråde. Stabil udgivelse dateret 4. oktober 2007 , eksperimentel udgivelse dateret 10. september 2009 .
begivenhed Apache Software Foundation Linux , FreeBSD Modellen bruger tråde og trådsikker polling er baseret på arbejder. er designet til at betjene flere anmodninger samtidigt ved at overlade noget behandling til lyttertrådene, hvilket frigør arbejdstråde til at betjene nye anmodninger. Leverer forbedret ydeevne. fungerer ikke godt på ældre platforme, der mangler god multithreading, men EPol- eller KQueue-kravet gør dette moot. Stabil.

Modulsystem

Apache HTTP Server understøtter modularitet . Der er mere end 500 moduler [12] , der udfører forskellige funktioner. Nogle af dem er udviklet af Apache Software Foundation -teamet , men størstedelen er af individuelle open source- udviklere.

Moduler kan enten inkluderes i serveren på tidspunktet for kompilering eller indlæses dynamisk gennem konfigurationsfildirektiver.

Moduler gør ting som:

Nogle webapplikationer, såsom ISPmanager og VDSmanager kontrolpaneler , er implementeret som et Apache-modul.

Virtuel værtsmekanisme

Apache har en indbygget virtuel værtsmekanisme . Det giver dig mulighed for fuldt ud at betjene mange websteder ( domænenavne ) på én IP-adresse og vise deres eget indhold for hver af dem.

For hver virtuel vært kan du angive dine egne kerne- og modulindstillinger, begrænse adgangen til hele webstedet eller individuelle filer. Nogle MPM'er, såsom Apache-ITK, giver dig mulighed for at køre en httpd - proces for hver virtuel vært med en separat uid og guide .

Der er også moduler, der giver dig mulighed for at tage hensyn til og begrænse serverressourcer ( CPU , RAM , trafik ) for hver virtuel vært.

Funktionalitet

Integration med anden software og programmeringssprog

Der er mange moduler, der tilføjer understøttelse af forskellige programmeringssprog og udviklingssystemer til Apache.

Disse omfatter:

Derudover understøtter Apache CGI- og FastCGI- mekanismer , som giver dig mulighed for at udføre programmer på næsten alle programmeringssprog, inklusive C , C++ , Lua , sh , Java .

Sikkerhed

Apache har forskellige sikkerhedsmekanismer og dataadgangskontrol. De vigtigste er:

Nogle MPM-moduler har mulighed for at starte hver Apache-proces ved hjælp af en anden uid og gid med den relevante bruger og brugergruppe.

Der er også en suexec- mekanisme, der bruges til at køre scripts og CGI -applikationer med brugerrettigheder og legitimationsoplysninger.

For at implementere kryptering af data, der overføres mellem klienten og serveren, bruges SSL - mekanismen , implementeret gennem OpenSSL - biblioteket . X.509 -certifikater bruges til at godkende webserveren .

Der er eksterne sikkerhedsværktøjer såsom mod_security .

Internationalisering

Fra og med version 2.0 blev det muligt for serveren at bestemme brugerens lokalitet . Fejl- og hændelsesmeddelelser sendt til browseren er nu på flere sprog og bruger SSI - teknologi.

Det er også muligt ved hjælp af serveren at implementere visning af forskellige sider for brugere med forskellige lokaliteter. Apache understøtter mange kodninger, inklusive Unicode , som giver dig mulighed for at bruge sider, der er oprettet i enhver kodning og på ethvert sprog.

Hændelseshåndtering

Administratoren kan indstille brugerdefinerede sider og behandlere for alle HTTP- fejl og hændelser såsom 404 (Ikke fundet) eller 403 (Forbudt). Herunder er der mulighed for at køre scripts og vise beskeder på forskellige sprog.

Server Side Inkluderer

I version 1.3 og ældre blev Server Side Includes-mekanismen implementeret, som giver dig mulighed for dynamisk at generere HTML -dokumenter på serversiden.

SSI styres af mod_include - modulet inkluderet i basisdistributionen af ​​Apache.


Se også

Noter

  1. http://www.apache.org/foundation/
  2. https://downloads.apache.org/httpd/Announcement2.4.html
  3. http://linuxdocs.org/HOWTOs/Apache-Overview-HOWTO-12.html
  4. https://github.com/apache/httpd
  5. Apache Open Source-projektet på Open Hub: Languages-side - 2006.
  6. https://httpd.apache.org/docs/trunk/license.html
  7. Webserverundersøgelse - august 2007  (  utilgængeligt link) . Netcraft (august 2007). Hentet 21. juni 2009. Arkiveret fra originalen 7. februar 2009.
  8. Webserverundersøgelse - maj 2009  (engelsk)  (link ikke tilgængeligt) . Netcraft (maj 2009). Hentet 21. juni 2009. Arkiveret fra originalen 30. maj 2009.
  9. Januar 2011 Web Server Survey  (engelsk)  (link ikke tilgængeligt) . Dato for adgang: 14. januar 2011. Arkiveret fra originalen 16. januar 2011.
  10. Januar 2016 webserverundersøgelse  . Arkiveret fra originalen den 12. juni 2016.
  11. Statistik over det russiske internet runfo.ru . www.runfo.ru Dato for adgang: 16. februar 2017. Arkiveret fra originalen 17. februar 2017.
  12. Apache Module Registry Arkiveret 3. februar 2010 på Wayback Machine 
  13. Apache::ASP Arkiveret 15. november 2011 på Wayback Machine 
  14. Rivet - Webscripting for Tcl'ers . Hentet 6. oktober 2011. Arkiveret fra originalen 27. september 2011.

Litteratur

Links