Apache je brezplačna in odprtokodna programska oprema spletnega strežnika, ki jo uporablja pribl 40 % spletnih mest po vsem svetu. Apache HTTP Server je njegovo uradno ime. Razvija in vzdržuje ga Apache Software Foundation . Apache lastnikom spletnih mest dovoljuje streženje vsebine prek spleta. To je razlog, zakaj je znan kot ' spletni strežnik .' Leta 1995 je bila objavljena ena najbolj zanesljivih in starejših različic spletnega strežnika Apache.
Če nekdo želi obiskati katero koli spletno mesto, v naslovno vrstico brskalnika vnese ime domene. Spletni strežnik bo prinesel zahtevane datoteke tako, da bo deloval kot virtualni dostavljavec.
Pomen spletnega strežnika
Poštni strežniki, strežniki baz podatkov, spletni strežniki, in datotečni strežniki uporabljajo različne vrste strežniške programske opreme. Vse te aplikacije lahko dostopajo do številnih datotek, shranjenih na fizičnem strežniku, in jih uporabljajo za številne cilje.
Namen spletnih strežnikov je dostaviti spletna mesta prek interneta. Za dosego tega cilja se obnaša kot posrednik med odjemalskimi stroji in strežniki. Vsebino lahko potegne skozi strežnik prek vsake zahteve uporabnika. Prav tako dostavi to zahtevo v splet.
Ena najbolj kritičnih nalog katerega koli spletnega strežnika je zagotavljanje storitev različnim uporabnikom spleta hkrati. Spletni strežniki izvajajo datoteke, določene v različnih vrstah programskih jezikov, kot je Java , Python , PHP , in mnogi drugi. Spletni strežniki spremenijo te datoteke v statične datoteke HTML. Zagotavlja storitve za te datoteke znotraj brskalnika spletnega strežnika. Spletni brskalnik lahko opredelimo kot orodje, ki je odgovorno za spodobno komunikacijo med odjemalcem in strežnikom.
Delovanje Apache
Apache ni fizični strežnik; je programska oprema, ki se izvaja na strežniku. Vendar ga definiramo kot spletni strežnik. Njegov cilj je zgraditi povezavo med brskalniki obiskovalca spletne strani (Safari, Google Chrome, Firefox itd.) in strežnikom. Apache lahko definiramo kot programsko opremo za več platform, tako da lahko deluje na strežnikih Windows in UNIX.
preobremenitev metode
Ko kateri koli obiskovalec želi naložiti stran na naši spletni strani, na primer domačo stran ali našo stran 'O nas', bo brskalnik obiskovalca poslal zahtevo na naš strežnik. Apache bo vrnil odgovor skupaj z vsako zahtevano datoteko (slike, datoteke itd.). Odjemalec in strežnik komunicirata po protokolu HTTP, Apache pa je odgovoren za varno in nemoteno komunikacijo med obema strojema.
Apache je programska oprema, ki je zelo prilagodljiv . Vsebuje strukturo, ki temelji na modulih. Različni moduli omogočajo skrbnikom strežnika izklop in vklop dodatnih funkcij. Apache vključuje module za predpomnjenje, varnost, preverjanje pristnosti gesla, prepis URL-jev in druge namene. Prav tako lahko nastavimo lastno konfiguracijo strežnika s pomočjo datoteke, znane kot .htaccess . To je podprta konfiguracijska datoteka Apache.
Drugi spletni strežniki v primerjavi z Apache
Na voljo je toliko spletnih strežnikov, ki se razlikujejo od Apache. Vse aplikacije spletnega strežnika so bile zgrajene za različne vrste ciljev. Apache ima nekaj tekmecev in alternativ in je večinoma uporabljena programska oprema.
Apache proti NGINX
Nginx se izgovarja kot Motor-X . Je nova aplikacija spletnega strežnika, ki je bila prvič objavljena leta 2004. Nginx je postal priljubljen med lastniki spletnih mest. Razvit je bil za rešitev težave c10k, kar pomeni, da spletni strežniki, ki uporabljajo niti za upravljanje različnih zahtev uporabnikov, ne morejo obravnavati več kot 10.000 povezav hkrati.
vprašanja za razgovor v jeziku java
- Lastniki spletnih mest z velikim prometom lahko naletijo na težave z zmogljivostjo, ker Apache uporablja strukturo, ki temelji na nitih. Nginx opredeljuje težavo c10k, ki je verjetno ena najbolj posrečenih.
- Nginx vsebuje arhitekturo, ki temelji na dogodkih. Ne zgradi novejšega procesa za vse zahteve. Namesto tega upravlja vse dohodne zahteve v posamezni niti. Ta proces obravnava različne delovne procese, ki izvajajo dejansko obdelavo zahteve. Nginxov model, ki temelji na dogodkih, deli uporabniške zahteve med tehnikami delavcev na enostaven in učinkovit način, zato zagotavlja boljšo razširljivost.
- Nginx je lahko boljša izbira, saj lahko z minimalnimi viri upravlja spletna mesta z velikim prometom. Natančneje, uporablja ga lahko več dobro vidnih spletnih mest, kot so Airbnb, Pinterest, Hulu in Netflix.
- Vendar pa Apache nudi številne prednosti na Nginxu, saj ima preprosto konfiguracijo, začetnikom prijazno okolje in različne module za srednje ali majhne igralce.
Apache proti Tomcatu
Tomcat cab definirati kot spletni strežnik in ga je izboljšala Apache Software Foundation. Zato je Apache Tomcat njegovo uradno ime. Tomcat je tudi strežnik HTTP. Vendar pa izboljša aplikacije Java namesto statičnih spletnih mest. Ta spletni strežnik lahko izvaja številne različne aplikacije Java, kot so WebSocket, Java EL, JSP (strani JavaServer) in Java Servlet .
- Natančneje, Tomcat je bil ustvarjen za aplikacije Java, medtem ko je bil Apache ustvarjen kot strežnik HTTP. Apache lahko uporabimo z različnimi programskimi jeziki (Perl, Python, PHP itd.) s podporo ustreznega modula Apache (mod_perl, mod_python, mod_php itd.).
- Čeprav lahko za serviranje spletnih strani (statičnih) uporabimo spletni strežnik Tomcat, je za ta namen manj učinkovit v primerjavi s strežnikom Apache. Tomcat lahko vnaprej naloži Java VM in druge knjižnice Jave, ki jih na večini spletnih mest ne bomo potrebovali.
- Poleg tega je Tomcat manj nastavljiv v primerjavi z drugimi vrstami spletnih strežnikov. Najboljša možnost je strežnik HTTP, kot je NGINX ali Apache za izvajanje WordPressa.
Prednosti in slabosti Apache
Apache je lahko odlična možnost za izvedbo našega spletnega mesta na vsestranski in stabilni platformi. Čeprav ima nekaj pomanjkljivosti, ki jih moramo razumeti.
Prednosti:
- Stabilna in zanesljiva programska oprema.
- Brezplačno in odprtokodno, tudi za ekonomično uporabo.
- Redni varnostni popravki, pogosto posodobljeni.
- Začetnikom prijazen, enostaven za konfiguracijo.
- Prilagodljiv zaradi modularne strukture.
- Brezhibno deluje s spletnimi mesti WordPress.
- Večplatformsko (implementirano na strežnikih Windows in Unix).
- Enostavno dostopna podpora in ogromna skupnost v primeru kakršne koli težave.
Slabosti:
- Različne težave z zmogljivostjo na spletnih mestih z izjemno velikim prometom.
- Več možnosti konfiguracije lahko povzroči varnostno občutljivost.
Različice Apache
Različica 1.1
To različico Apache je leta 2000 odobril ASF. Glavna sprememba je znotraj 'oglaševalske klavzule' iz licence 1.0. Izveden izdelek 'Oglaševalske klavzule' ni več potreben za vključitev vidikov oglaševalskega gradiva (samo v dokumentaciji).
Različica 2.0
Različico 2.0 Apache je ASF sprejel januarja 2004. Njegovi navedeni cilji so vključevali ustvarjanje licence, ki jo je enostavno uporabiti za nekatere projekte, ki niso ASF. Lahko izboljša združljivost s programsko opremo, ki temelji na GPL. Omogoča dodajanje licence s sklicevanjem, namesto da bi bila navedena v vseh datotekah. Prav tako pojasnjuje licenco glede prispevkov. Za prispevke, ki kršijo patente prispevka, nujno potrebuje kakršno koli patentno licenco.
Varnost Apache
Tako kot druge spletne strežnike je tudi Apache mogoče zlorabiti in vdreti. Glavno napadalno orodje Apache je Slowloris. Slowloris lahko izkorišča hrošče v programski opremi Apache. Zgradi lahko več vtičnic in vse te vtičnice ohranja pri življenju ter pošilja različne bajte (imenovane 'glave ohranjanja pri življenju'), da obvesti strežnik, da je sistem povezan in da nima težav z omrežjem.
abeceda oštevilčena
Mnogi razvijalci Apache so definirali Slowloris z več moduli za omejevanje povzročene škode. Različni moduli Apache, kot npr mod_antiloris, mod_noloris, mod_security, mod_evasive, mod_qos, in mod_limitipconn vsaka je bila predlagana za zmanjšanje možnosti uspešnega napada Slowlorisa. Apache pošilja modul mod_reqtimeout kot izvršno rešitev, ki jo spodbujajo razvijalci od Apache 2.2.15.
Razvoj Apache
Različice strežnika HTTP Apache
Najnovejša izdaja | Začetna izdaja | Različica |
---|---|---|
03-02-2010 (1.2.42) | 06-06-1998 | 1.3 |
07-10-2013 (2.0.65) | 04-06-2002 | 2.0 |
11. 7. 2017 (2.2.34) | 01-12-2005 | 2.2 |
08-07-2020 (2.4.46) | 21.02.2012 | 2.4 |
Projekt Apache je kolektivno prizadevanje za izboljšanje programske opreme, katerega cilj je izdelava komercialne, robustne, prosto dostopne implementacije HTTP strežnika z bogato izvorno kodo. Projekt je skupaj vodila ekipa prostovoljcev, ki so razporejeni povsod. To je mogoče storiti z uporabo spleta in interneta za razvoj, komunikacijo in načrtovanje katerega koli strežnika in povezane dokumentacije.
Projekt je del fundacije Apache Software Foundation. Veliko uporabnikov je delilo svojo kodo, dokumentacijo in ideje za projekt.
Različica Apache 2.4 nudi podporo za platforme Tandem, NeXT, UX/A, TPF in BeOS.