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 .
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] .
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.
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 .
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. |
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.
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.
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 .
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 .
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.
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.
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.
Apache Software Foundation | |||||||
---|---|---|---|---|---|---|---|
Projekter på topniveau |
| ||||||
Delprojekter |
| ||||||
Apache Web |
| ||||||
Andre projekter | |||||||
Udvikling af projekter ( inkubator ) |
| ||||||
Nedlagte projekter ( loftsrum ) | |||||||
|