Välja driftläge för webbservern baserat på personlig erfarenhet. Grunderna i webbapplikationer Vad krävs för att en webbserver ska fungera

Om du skriver http://www.site/how-web-server-work/ i adressfältet i din webbläsare och trycker på Enter-tangenten kommer denna sida på vår webbplats att visas på skärmen.

På den mest grundläggande nivån hände följande: Din webbläsare skapade en anslutning till webbservern, skickade en begäran om att få sidans webbsida och tog emot den.

Nu lite mer detaljer:

URL:en består av tre delar:

1. Protokoll (http)

2. Servernamn (www.webbplats)

3. Sidadresser (hur-web-server-fungerar)

Webbläsaren kontaktar domännamnsservern för att översätta webbplatsens namn www.site till IP-adress, som den använder för att ansluta till serverdatorn. Webbläsaren gör sedan en anslutning till webbservern på den angivna IP-adressen på port 80 eller någon annan om så är avsett (vi kommer att diskutera portar senare i denna artikel).

Efter HTTP-protokollet skickade webbläsaren en begäran till servern och begärde filen http://www.site/how-web-server-work/

anteckna det småkakor kan även skickas från webbläsaren till servern.

Som svar genererade servern dynamisk webbsida och skickade tillbaka HTML-text för att visa denna sida i din webbläsare. Småkakor kan även skickas från servern till webbläsaren i sidhuvudet. Webbläsaren läser HTML-taggarna och producerar webbsidans utdata på skärmen.

Internet

Så vad är "Internet"? Internet består av hundratals miljoner datorer som är sammankopplade i datornätverk. Ett nätverk gör att alla datorer kan kommunicera med varandra. Hemdator kan anslutas till Internet med det mesta olika sätt och enheter - börjar med ett primitivt modem för en telefonlinje, laddar upp en anslutning via lokalt nätverk (LAN) med internetleverantör ( ISP).

Stora internetleverantörer stödjer fiberoptiska linjer för ett helt land eller region. Stamnät läggs över hela världen, anslutna via fiberoptiska linjer, sjökablar eller satellitlänkar. Således är varje dator på Internet ansluten till alla andra datorer på Internet.

Klienter och servrar

I allmänhet kan alla datorer på Internet delas in i två kategorier: servrar och klienter. Datorer som tillhandahåller tjänster (som webbservrar, FTP-servrar, molntjänster) till andra maskiner servrar. Maskinerna som används för att ansluta till dessa tjänster är − kunder. När du ansluter till Google för att utföra en sökfråga eller använda någon av dess tjänster tillhandahåller Google sin dator (möjligen ett helt kluster av kraftfulla datorer) för att betjäna din begäran. Så Google tillhandahåller servern. Din maskin kan också tillhandahålla tjänster till någon på Internet. Användarmaskinen är alltså vanligtvis en klient, även om den också kan bli en server vid behov.

En server kan tillhandahålla en eller flera tjänster på Internet. Till exempel kan en serverdator ha programvara installerad som gör att den kan fungera som webbserver, e-postserver och FTP-server. Klientdatorer som ansluter sig till servern riktar sina förfrågningar till speciell programvara som körs på en delad serverdator. Om du till exempel använder en webbläsare på din dator kommer den att "prata" med webbservern på serverdatorn. Din e-postapplikation kommer att "prata" med servern E-post, och så vidare.

IP-adresser

För att ansluta alla dessa maskiner till ett nätverk har varje dator på Internet en unik adress som kallas IP-adress. En typisk IP-adress ser ut så här:

De fyra siffrorna i en IP-adress kallas oktetter eftersom de kan ta värden mellan 0 och 255 eller 2 8 möjliga värden.

Varje dator på Internet har sin egen unika IP-adress. Servern har en statisk IP-adress som sällan ändras. En hemdator har ofta en IP-adress som tilldelas av ISP när maskinen ansluter till den. Denna IP-adress är unik för den här sessionen, men kan bli annorlunda nästa gång. På så sätt behöver internetleverantören bara en IP-adress för varje router som den stöder, inte för varje klient.

Om du använder en Windows-dator kan du se mycket information om Internet på din dator, inklusive din nuvarande IP-adress och värdnamn, med kommandot ipconfig. På en UNIX-maskin måste du skriva nslookup V kommandorad för att visa maskinens IP-adress.

Domännamn

Eftersom de flesta människor har svårt att komma ihåg nummersekvensen som utgör IP-adresser, och eftersom IP-adresser ibland behöver ändras, har alla servrar och sajter på Internet också mänskliga läsbara namn som kallas domännamn. Till exempel www.. Detta är lättare för de flesta av oss att komma ihåg www.webbplatsän att minnas 5.9.205.233

Namnet www.site består egentligen av tre delar:

1. World Wide Web-namn (www). Faktum är att du kan göra utan att uttryckligen ange "www", även om detta formellt sett kommer att vara ett annat nätverk.

2. Domännamn (qriosity)

3. I toppdomänzonen (ru)

Domännamn hantera Domännamnsregistratorer. Registratorer skapar toppdomännamn och ser till att alla namn i domänens toppnivåzon är unika. Registraren tillhandahåller även kontaktinformation för varje domännamn och lanserar tjänsten vem är, som anger ägaren till domänen. Värdnamnet skapas av ägaren av domänen.

Domännamnsservrar

En uppsättning servrar anropade domännamnsservrar(DNS) mappar mänskligt läsbara namn till IP-adresser. Dessa servrar innehåller enkla databaser med namn och IP-adresser, och de är distribuerade över hela Internet. De flesta enskilda företag, internetleverantörer och stora universitet stödjer små DNS. Det finns också centrala DNS:er som använder data som tillhandahålls av domännamnsregistratorer.

När du anger URL:en http://www..site, skickar den till domännamnsservern, returnerar servern den korrekta IP-adressen för www.site. Ett antal namnservrar kan vara inblandade för att få rätt IP-adress.

Så låt oss upprepa vad vi läser: Internet består av miljontals maskiner, var och en med en unik IP-adress. Många av dessa bilar är servrar. Det betyder att de tillhandahåller tjänster till andra datorer på Internet. Många av dessa servrar är e-postservrar, webbservrar, FTP-servrar, molntjänstservrar.

Hamnar

Varje server gör sina tjänster tillgängliga via Internet med hjälp av numrerade hamnar, en för varje tjänst som är tillgänglig på servern. Det finns till exempel en serverdator som kör en webbserver och en FTP-server. Webbservern kommer vanligtvis att vara tillgänglig på port 80, och FTP-servern kommer att vara tillgänglig på port 21. Klienter ansluter till tjänsten på en specifik IP-adress och på en specifik port.

Var och en av de mest populära tjänsterna är tillgängliga på ett förkänt portnummer, men du kan tilldela ditt eget portnummer till vilken tjänst som helst.

Om servern accepterar anslutningar på en port från världen utanför, och om brandväggen inte skyddar portarna kan du ansluta till en förutbestämd port från vilken dator som helst på Internet och använda tjänsten. Observera att det inte finns något som tvingar dig att till exempel hålla webbservern på port 80. Om du installerade din server och laddade webbserverns mjukvara på den, kan du sätta webbservern på port 999, eller vilken som helst annan oanvänd port . Sedan, om din maskin till exempel är känd som xxx.yyy.com kan de ansluta till den från URL:en http://xxx.yyy.com:999 -":999" anger tydligt portnumret genom vilket din webbserver kan nås. Om porten inte är specificerad, antar webbläsaren helt enkelt att webbservern är tillgänglig med den välkända porten 80.

Protokoll

När en klient väl är ansluten till en tjänst på en given port, kommer den åt tjänsten med en speciell protokoll. Protokollär en uppsättning konventioner på logisk nivå som tillåter program att utbyta data. För att arbeta tillsammans mellan datorer på Internet används TCP/IP-familjen av protokoll. Webbservern använder HTTP-protokollet.

Ytterligare: Säkerhet

Du kan se från den här beskrivningen att webbservern är ett ganska enkelt arbete programvara. Den tar namnet på filen som skickas med kommandot GET, tar emot filen och skickar den till webbläsaren. Även om man tar hänsyn till all kod för att hantera portar, består ett enkelt webbserverprogram av högst 500 rader kod. Fullskaliga webbservrar är mer komplexa, men i sin kärna är de också mycket enkla.

De flesta servrar sätter en viss nivå säkerhet till serviceprocesser. Det enklaste alternativet är att begära inloggning och lösenord för att få tillgång till servern. Mer avancerade servrar lägger till ytterligare säkerhet genom att upprätta en krypterad anslutning mellan servern och webbläsaren, så konfidentiell information(t.ex. kreditkortsnummer) kan skickas över Internet.

Detta är verkligen allt som behövs för en webbserver som serverar standard, statiska webbsidor. Statiska sidor är sidor som inte ändras om inte webbmastern själv redigerar dem.

Dessutom: Dynamiska sidor

Vad har hänt dynamisk webbsidor? Till exempel:

1. Vilken gästbok som helst låter dig skriva ett meddelande i HTML-format och visar nya och gamla inlägg automatiskt.

2. Vilken sökmotor som helst låter dig ange nyckelord i ett HTML-formulär, och sedan skapar den dynamiskt en sida baserad på att söka efter information med dessa nyckelord.

I alla dessa fall gör webbservern mer än att bara "söka efter en fil." Den bearbetar information och genererar sidor beroende på detaljerna i förfrågningarna. I nästan alla fall använder webbservern den sk manus- programkod skriven i PHP, Perl, Java och andra programmeringsspråk för att slutföra denna process.

Sidorna på vår webbplats är också dynamiska, skapade av PHP hjälp använder MySQL-databaser.

webbserver (webbserver) är en server som ansvarar för att ta emot och bearbeta förfrågningar (HTTP-förfrågningar) från klienter till en webbplats. Klienterna är vanligtvis olika webbläsare. Som svar skickar webbservern HTTP-svar till klienter, i de flesta fall tillsammans med en HTML-sida, som kan innehålla alla typer av filer, bilder, mediaström eller annan data.

Webbservern utför också funktionen att exekvera skript, såsom CGI, JSP, ASP och PHP, som ansvarar för att organisera förfrågningar till nätverkstjänster, databaser, filåtkomst, vidarebefordran av e-post och andra e-handelsapplikationer.

Termen "webbserver" avser även teknisk utrustning och programvara som utför funktionerna hos en webbserver. Detta kan vara en dator som är speciellt vald från en grupp persondatorer eller en arbetsstation på vilken serviceprogramvara är installerad och körs.

Användarens klient, som i första hand är en webbläsare, gör förfrågningar till webbservern för att få resurser som identifieras av URL:er. Resurser är HTML-sidor, digitalt medieinnehåll, mediaströmmar, olika bilder, datafiler eller annan data som kunden kräver. Som svar skickar webbservern den begärda informationen till klienten. Detta utbyte sker med hjälp av HTTP-protokollet.

HTTP (engelska: HyperText Transfer Protocol) är ett nätverksprotokoll för applikationslagret för dataöverföring. Huvudprincipen för HTTP-protokollet är klient-server-tekniken, som säkerställer interaktion mellan nätverket och användaren.

I fallet med en liten organisation kan en webbserver vara ett integrerat system, som kommer att bestå av: HTTP-server - används för förfrågningar till webbsidor; FTP-server – används för att ladda ner filer via Internet; NNTP-servrar – ger åtkomst till nyhetsgrupper; SMTP-server – för e-post.

Berättelse

Den brittiske forskaren Tim Berners-Lee anses vara uppfinnaren av den första webbservern. Han har arbetat sedan 1980 vid European Nuclear Research Laboratory (Conseil Européen pour la Recherche Nucléaire, CERN) som mjukvarukonsult och började sitt utvecklingsarbete. I Genève utvecklade han för sina egna behov programmet Inquire, som använde slumpmässiga associationer för att lagra data och lade konceptet till grunden för World Wide Web.

1989 föreslog Tim Berners-Lee, som arbetade på CERN:s intranät, grundandet av ett globalt hypertextprojekt, som bestod av att publicera hypertextdokument länkade med hyperlänkar. Genomförandet av detta projekt, enligt hans åsikt, skulle göra det lättare för CERN-forskare att kombinera, söka och utbyta information. För att genomföra projektet uppfann Tim Berners-Lee tillsammans med sina assistenter URI- och URL-identifierare, HTTP-protokollet och HTML-språket. Alla dessa tekniker används nu flitigt i det moderna Internet och kan inte längre göras utan dem.


Som ett resultat av detta projekt utvecklade Berners-Lee världens första webbserver, kallad "httpd", samt världens första hypertextwebbläsare för NeXT-datorn, kallad WorldWideWeb.

Den första webbläsaren kördes på NeXTSTEP-plattformen, ett objektorienterat, multitasking-operativsystem, och utvecklades med Interface Builder. Webbläsargränssnittet var väldigt enkelt och nästan all information visades i textformat med endast ett fåtal bilder. Utöver det vanliga FTP-protokollet använde Tim Berners-Lee det nya HTTP-protokollet, som han uppfann. Mellan 1991 och 1993 förfinade och publicerade Berners-Lee de tekniska egenskaperna för sina nya utvecklingar: URI:er och URL:er, HTTP-protokollet och HTML-språket. Webbläsaren döptes senare om till "Nexus" för att undvika förväxling med operativsystemet som webbläsaren utvecklades på och dess namn.

Världens första webbserver och första webbläsare kördes på NeXTSTEP-datorn; den här datorn visas nu på CERN-museet (Mikrokosmos).

Tim Berners-Lee var värd för världens första webbplats på http://info.cern.ch; Denna webbplats är nu arkiverad. Den första sidan dök upp på Internet den 6 augusti 1991. På denna webbplats gavs:

  • beskrivning av World Wide Web;
  • instruktioner korrekt installation webbserver;
  • information om hur man köper en webbläsare;
  • annan teknisk information.

Denna sida var också världens första onlinekatalog. Berners-Lee lade upp en lista med länkar till andra webbplatser på den och uppdaterade den regelbundet.

Den 12 december 1991 installerades världens första webbserver på Stanford Linear Accelerator Center (SLAC) i USA.

Grundläggande och tilläggsfunktioner

Alla grundläggande och ytterligare funktioner för webbservern:

  • Ta emot förfrågningar från webbläsare via HTTP-standarden med TCP/IP-nätverksprotokoll;
  • Söka och skicka filer med hypertext eller andra dokument till webbläsaren via HTTP;
  • Service och bearbetning av förfrågningar, såsom: mailto, FTP, Telnet, etc.;
  • Starta applikationsprogram på en webbserver med efterföljande överföring och retur av bearbetningsparametrar via CGI-gränssnittsstandarden;
  • Drift och underhåll av navigationsbildkartor (Bildkarta);
  • Administration och drift av servern;
  • Auktorisering av användare och deras autentisering;
  • Upprätthålla en logg över användarförfrågningar till olika resurser;
  • Automatiserad drift av webbsidor;
  • Stöd för sidor som genereras dynamiskt;
  • Stöd för HTTPS-protokollet för säkra anslutningar med klienter.

Beskrivning av webbservern

Webbläsare kommunicerar med webbservrar med hjälp av Hypertext Transfer Protocol (HTTP). Det är ett enkelt begäran- och svarsprotokoll för att skicka information med hjälp av TCP/IP-protokollet. Webbservern tar emot begäran, upptäcker filen, skickar den till webbläsaren och stänger sedan anslutningen. Grafisk information som finns på sidan behandlas på samma sätt. Därefter är det webbläsarens tur att visa HTML-dokumentet som laddats ner från Internet på användarens bildskärm.

Förutom HTML-sidor och grafik kan webbservrar lagra vilken fil som helst, inklusive textdokument, ordbehandlare, videofiler och ljudinformation. Idag, om du inte tar hänsyn till frågeformulären som användarna fyller i, överförs huvuddelen av webbtrafiken i en riktning - webbläsare läser filer från webbservern. Men detta kommer att förändras med det allmänna antagandet av PUT-metoden som beskrivs i HTTP 1.1-utkastet, som gör att filer kan skrivas till webbservern. Idag används PUT-metoden främst av användare som skapar webbsidor, men i framtiden kan det även vara användbart för andra användare att ge feedback till informationscentraler. PUT-förfrågningar är mycket enklare än vanlig POST-uppladdning av filer till en webbserver.

Olika applikationer utför också sitt arbete på webbservern, de mest populära är sökmotorer och verktyg för att kommunicera med databaser. Standarderna som används för att utveckla dessa applikationer inkluderar Common Gateway Interface (CGI), JavaScript-skriptspråk och Java programmering och VisualBasic. Utöver CGI-standarden har vissa webbserverföretag skapat applikationsprogrammeringsgränssnitt (API), som Netscape Server API och Internet Server API, som skapats av Microsoft och Process Software AG. Dessa gränssnitt tillåter utvecklare att direkt komma åt specifika webbserverfunktioner. Vissa webbservrar tillhandahåller mellanprogram för att ansluta till databaser, vilket kan kräva avancerad programmeringskunskap för att fungera.

Grundläggande sökfunktioner hjälper användare att sortera den information de behöver, och databasverktyg ger webbläsaranvändare tillgång till den informationen.

Webbserveröversikt

Kriterierna för att välja en webbserver kan innefatta olika egenskaper: installation, konfiguration, serverhantering, administration, hantering av information som finns på servern, skydd av denna information, åtkomstkontroll, aoch prestanda.

De flesta webbservrar är enkla och snabba att installera.

Den svåraste delen av installationsprocessen är att konfigurera flera domännamn på ett fysisk enhet eller med andra ord organisationen av virtuella servrar.

Webbservrar har verktyg för att hantera informationsmodulen som kännetecknar den övergripande organisationen av webbplatsen, och har även verktyg för att kontrollera riktigheten av interna och externa hypertextlänkar. Netscape Communications LiveWire-paket, som levereras med Novell Open Enterprise Server (OES) och är valfritt tillgängligt med FastTrack Server, har ett värdhanteringsverktyg som listar alla länkar för en vald sida. Det här verktyget ger också en allmän lista över alla felaktiga anslutningar som det upptäcker. O'Reilly & Associates' WebView har samma funktionalitet och kan visa ett detaljerat filträd med alla ogiltiga länkar markerade i rött.

Det finns också grundläggande verktyg för att hantera innehållsmaterial. Webbadministratörer måste välja var filerna ska lagras och hur dessa filer ska nås av användare som kommer åt webbservern. Detta kräver mappning mellan logiska URL:er och fysiska filkataloger. Varje programvara utför denna operation på sitt eget unika sätt.

Med webbservrarnas ökande popularitet och deras ökande användning i intranät ökar den kommersiella aktiviteten på Internet, så vikten av att skydda information ökar. Oftare än inte är webbserversäkerhetssystem antingen överdrivet eller otillräckligt för dagens intranät. Om det är nödvändigt att begränsa åtkomsten till viss information inom företaget, så finns det ett val mellan att använda okrypterade lösenord som överförs via kommunikationskanaler, och att använda SSL-protokoll(engelska: Secure Sockets Layer) är en komplex och långsam metod som används för att kryptera lösenord och data.

För att organisera arbetet för enskilda användare och deras grupper kan användas interna applikationer server eller vissa operativsystemfunktioner. För att organisera arbetet för enskilda användare och deras grupper kan interna serverapplikationer eller vissa funktioner i operativsystemet användas. Microsoft IIS Batch Service ger stöd för det underliggande nätverksoperativsystemet Windows NT.

NetWare Web Server från Novell, Inc. Helt integrerad med adresskatalogtjänster (NetWare Directory Services, NDS). Det är bekvämt att hantera användare från ett gemensamt center, men det kan utgöra en säkerhetsrisk. Lösenord distribueras okrypterat över kommunikationskanaler, och om de avlyssnas är inte bara webbservern i fara, utan säkerheten för hela nätverksoperativsystemet är i fara.

Applikationsutveckling är en av huvudfunktionerna för en webbserver. Applikationsutvecklingsmiljön och databasanslutningsverktyg är mycket viktiga för att utöka funktionerna hos webbservern, eftersom applikationsutveckling beror på olika idiosynkratiska detaljer i applikationsprogrammeringsgränssnittet (API), såväl som på egenskaperna hos programmeringsspråk eller programmerares individuella preferenser.

Webbservrar kan betjäna en mängd olika system, från ett litet företags intranät till stora webbinformationscenter som används av miljontals människor.

För små företags intranät är det bästa paketet att använda Internet Information Server (IIS), skapad och distribuerad av Microsoft. IIS har en ganska enkel installation och enkla inställningar konfigurationer. Detta webbserverpaket är väl integrerat med åtkomstkontroller, övervakningsverktyget Performance Monitor och Event Viewer. IIS-webbservern tillhandahåller också flera verktyg för att dynamiskt överföra information från databaser. IIS är väldigt snabb. IIS-komponenter stöder protokoll som: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

För att göra det enklare att skapa webbinformationscenter kommer de flesta webbservrar med verktyg och verktyg för att hantera innehåll. Förutom HTML-redigerare och dokumentformatkonverterare är de mest användbara verktygen URL-kontroller, som säkerställer att alla hypertextlänkar på din webbplats fungerar.

Varje persondator som är ansluten till Internet kan förvandlas till en webbserver om du installerar speciell serverprogramvara på den.

De vanligaste webbservrarna är Apache (Apache Software Foundation), IIS (Microsoft) och iPlanet server (från Sun Microsystems och Netscape Communications Corporation). Nu på marknaden för webbserverprogramvara finns det ett enormt utbud av produkter, både kommersiella och gratis.

En av de vanligaste webbservrarna är Apache från Apache Software Foundation. Det uppskattas att det används på 65% av alla webbservrar i världen. En av de största fördelarna med Apache-programvaran är att den är gratis att distribuera. Utvecklarna fixar regelbundet hittade buggar och ger bra användarsupport. Denna webbserver stöder ett stort antal moduler, verktyg och tillägg. Eftersom Apache redan från början utvecklades som programvara för administratörer och avancerade användare, är nackdelen att den är svår att konfigurera och underhålla för oerfarna webbansvariga.

Näst i popularitet är IIS-webbservern från Microsoft. Enligt Netcraft står IIS-webbservern för 12,46 % av det totala antalet webbservrar. Denna produkt är en del av Windows NT-familjen av serverprogramvara. Dess främsta fördelar är stabilitet, hög hastighet och möjligheten att ansluta ytterligare moduler. Microsoft strävar efter att säkerställa att alla användare kan använda dess produkter utan hjälp av specialister om de behöver lösa standardproblem. Därför är IIS mycket lätt att installera, konfigurera och underhålla. Webbservern stöder .NET-teknik, som nyligen har blivit populär bland utvecklare och professionella användare. Dessa fördelar tar IIS-webbservern till nästa nivå och du kan förvänta dig att användningen kommer att öka.

Andra kända webbservrar:

  • nginxär en gratis webbserver och e-postproxyserver utvecklad av Igor Sysoev. Enkel, snabb och pålitlig server. Fungerar på Linux och andra Unix-liknande system operativsystem, såväl som på Windows. Populär på stora webbplatser;
  • lighttpd- gratis webbserver. Utvecklad av Jan Kneschke. Snabb och säker webbserver. Fungerar på Linux och andra Unix-liknande operativsystem, samt Windows;
  • Google webbserver- en webbserver som är baserad på Apache och som används av Google för att organisera sin webbinfrastruktur;
  • Harts- en gratis webbserver och applikationsserver för Java. Utvecklat av Caucho Technology Inc.;
  • Cherokee- en gratis webbserver som endast styrs via webbgränssnittet. Skrivet i programmeringsspråket C;
  • Rootage- en webbserver skriven i programmeringsspråket Java. Fungerar på Linux och Windows;
  • THTTPD- en enkel, liten, snabb och säker webbserver. Utvecklad av ACME Labs Software.

Webbserverklienter

Vanligtvis är klienten en webbläsare. Men olika andra enheter och program kan också komma åt webbservern:

  • En webbläsare installerad på en stationär persondator;
  • En webbläsare installerad på en handdator eller annan bärbar enhet;
  • Mobiltelefoner och smartphones med vilka användaren får tillgång till webbserverresurser via WAP-protokollet;
  • Olika program som kan komma åt webbservern självständigt för att uppdatera eller få annan information. Ett exempel är olika antivirus som regelbundet kontaktar webbservern för att uppdatera databasen;
  • Diverse digitala enheter, samt vissa hushållsapparater.

Den här artikeln kommer att vara användbar för de personer som redan har sin egen webbplats, eller som planerar att öppna en. Artikeln kommer att vara särskilt intressant för ambitiösa webbansvariga som känner att den finaste timmen av deras projekt är precis runt hörnet och vill förbereda sig för tillströmningen av sidbesökare.

Till och med de som bara drömmer om tusentals användare på sin webbplats har förmodligen undrat: "Hur många användare kommer min webbplats att stödja om de loggar in samtidigt?" Jag kommer omedelbart ihåg det välkända uttrycket "Habraeffect" - fenomenet med ett webbplatsfel som inte var redo för många övergångar till det efter att en länk dök upp på Internet.

Låt oss anta att det redan finns en webbplats (eller kommer det att finnas en snart): var ska vi placera den? Ska det vara en klassisk hosting eller en VPS-server? Om vps, vilken och hur konfigureras den bäst? Eller kanske det inte är någon skillnad alls och det är lättare att välja vad som är billigare? I den här artikeln kommer vi att titta på flera alternativ och se i praktiken vilket som passar bäst för vår sida.

Vi kommer att experimentera: ställa in olika serverdriftslägen och mäta prestanda. Vi kommer att simulera belastningen på webbplatsen med hjälp av tjänsten Loaddy.com. Där kan du ställa in antalet användare, den ökande typen av belastning, och grafen visar hur servern reagerar på dem. Man tror att en användare genererar ungefär en begäran till webbplatsen inom 10 sekunder. Som en testsida, låt oss ta en demo onlinebutik på cms moguta. Den kommer att fyllas med test-”produkter” som visas på huvudsidan enligt flera kriterier (det vill säga när man skapar sidan jobbar man med databasen etc.). På ett eller annat sätt kommer detta att låta dig jämföra lägena med varandra.

Som en testsida kommer vi att skapa en VPS-server på Ubuntu OS. Dess konfiguration kommer att vara . Vi antar att dessa är servrarna nybörjarnivå skapas i de flesta fall för nya projekt. Testversionen av onlinebutiken kommer att finnas tillgänglig på IP-adressen http://130.193.44.219/

Klassisk hosting kommer också att komma väl till pass, till vilken vi också laddar upp samma webbutik för att genomföra tester. Du kan själv följa vår väg och genomföra samma tester på ditt projekt!

Eftersom i de flesta fall en kontrollpanel erbjuds tillsammans med vps, kommer vi att göra de viktigaste ändringarna av inställningarna i den. På vps-servern har vi 3 driftlägen tillgängliga för oss:

  • Apache;
  • Apache i CGI-läge;
  • Nginx + php-fpm (utan Apache).
Men låt oss först testa det på webbhotellet:

Klassiskt billigt värdskap

Fel visas när antalet besökare överstiger 50 personer. Värdskapet slutar visa innehåll, och om vi går till värdkontrollpanelen kan vi se något i stil med följande:

Din webbplats har varit begränsad under de senaste 24 timmarna. CPU-resurser är begränsade för din webbplats. Du har nått gränserna för inmatningsprocesser (antal PHP- och CGI-skript som körs samtidigt, schemalagda jobb och konsolsessioner) 126 gånger.
Jo, naturligtvis, värd är värd, särskilt billigt. Du kan naturligtvis hitta en taxa som ger fler möjligheter, men allt detta måste beaktas och på något sätt ta reda på exakt information om begränsningarna från varje värdleverantör.

VPS: Apache

Näst på tur är vår test-VPS med Apache-läge, som för övrigt erbjuds som standard när man installerar ISP-kontrollpanelen.

Problem börjar när antalet användare överstiger 90. Om vi ​​loggar in på vår server via ssh och för närvarande tittar på listan över processer med hjälp av toppkommandot, sorterade med Shift+M (efter mängden minne som förbrukas), kommer vi att se något som det här:

Vi ser att apache2-processen har vuxit till många barn och de har ätit upp allt RAM-minne på vår vps-server.

Här måste vi göra en liten anmärkning. Faktum är att för Apache-servern, teoretiskt sett, finns det ett läge som tillåter, istället för ett stort antal underordnade processer för varje anslutning, att skapa flera så kallade multitrådar, som var och en skulle tjäna flera anslutningar. Detta läge kallas arbetstagare, till skillnad från standard förgaffel. Men att installera det är inte lätt, det är omöjligt att göra detta i paneler som ISP, och om du blir förbryllad och försöker göra det via ssh, kommer du att få reda på att för detta räcker det inte att stänga av prefork och slå på arbetaren , behöver du också en trådsäker version av php. Och om moduler som Zend eller IonCube används måste de också vara trådsäkra. Och i allmänhet rekommenderar den officiella PHP-webbplatsen inte att du installerar det här läget.

VPS: CGI

Låt oss se vad som händer när du använder CGI-läget. För att göra detta måste du tillåta användning av PHP i CGI-läge i ISP-kontrollpanelen, detta görs i " konton– användare – inställningar för användaren.”

Det visade sig vara en dyster bild. Servern vägrar att visa innehåll även med 55+ besökare, RAM-minnet äts upp av "php"-processerna. Därefter kommer ett försök att återställa funktionalitet, men det slutar fortfarande i nästan 100 % misslyckanden.

VPS: Nginx + PHP-FPM

Det är dags för ett läge där Apache-servern inte används alls, Nginx fungerar istället och php bearbetas av php-fpm-modulen. Om du använder en ISP-kontrollpanel måste du aktivera detta läge för användaren. Detta görs också i avsnittet "Konton - Användare - Användarinställningar". Det här läget bör också vara tillgängligt i avsnittet "Inställningar - Funktioner - Webbserver (www)".

Precis vad som behövs! 100 % tillgänglighet, medan laddningshastigheten och serverns svarstid är på acceptabla nivåer, även om de ökar med ökande belastning. Ändå klarar servern det!

Låt oss titta på tabellen över processer vid ögonblicket för maximal belastning på servern:

Vi ser att vi fortfarande har lager till ett överkomligt pris random access minne. Och underordnade processer av php-fpm7.0 växer inte i stora mängder, utan är begränsade till 5 kopior, som var och en tjänar flera trådar.

Tja, det ser ut som om den "vinnande regimen" har bestämts. Låt oss ta reda på hur många samtidiga besökare vår server kan betjäna i detta läge. Men innan dess ska vi göra lite "tuning". För det första, eftersom apache inte används när servern körs på detta sätt, kan den inaktiveras helt. Vi kommer att göra detta i ISP-kontrollpanelen i avsnittet "System - Tjänster". För det andra, låt oss ändra lite på principen för att starta php-fpm-processer. Som standard är den dynamisk. Detta innebär att underordnade processer kommer att hänga i minnet även när de inte behövs. Samtidigt frigörs inte minnet och med tiden kan dessa processer växa sig större än vi skulle vilja. Därför föreslås det att installera läget "ondemand" - on demand. Och ställ in antalet underordnade processer och timeouttiden för dem.

För att göra detta måste du logga in på servern via ssh och skriva dessa inställningar i konfigurationen php-fil. Det är bekvämt att göra detta i en fil för användaren för vilken domänen skapades i ISP.

Den finns vanligtvis i /etc/php/7.0/fpm/pool.d

Så: sudo nano /etc/php/7.0/fpm/pool.d/www-root.conf

Vi ser följande standardinställningar där:

Pm = dynamiska pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5
För att få on-demand-läget att fungera måste du ersätta detta med:
pm = ondemand pm.max_children = 17:00.process_idle_timeout = 10s
Och starta om php-fpm med kommandot

Sudo-tjänsten php7.0-fpm omstart
Efter detta kommer php-fpm7.0-processer att skapas på begäran (om det finns en belastning), det maximala antalet av dem kommer att vara = 5, och efter 10 sekunders vilotid kommer processen att dödas, vilket frigör RAM.

För säkerhets skull, låt oss köra vårt test igen för att se till att all denna amatöraktivitet inte påverkade webbplatsens prestanda negativt:

Låt oss nu köra Loaddy med många besökare för att se hur många anslutningar vår server kan hantera:

Den goda nyheten är att alla förfrågningar behandlades, om än med en lång fördröjning, med ett stort antal av dem per sekund. Serverns svarstid närmar sig 10 sekunder med ett antal förfrågningar på 190+. Men låt oss komma ihåg grafen för apache-läget, där vi fick 4 sekunders serversvar redan med 80+ användare, medan i php-fpm-läget liknande fördröjningar observeras med 130 förfrågningar, som vi specifikt markerade markören på grafen ovan.
Men det här är samma VPS.

Tabell över toppprocesser i slutet av testet (med 200 användare):

Observera att efter att testningen slutförts frigjordes minnet som används av pfp-fpm:

Det betyder att vår server är redo för nya laddningar.

Det är nödvändigt att komma ihåg att sajten fungerar i nginx+php-fpm-läge, detta betyder att apache2 inte används i arbetet och som ett resultat används .htaccess inte. Detta kan verka obekvämt, men det är det snabbaste alternativet som finns och sökmotorer rankar sajter som är snabbare bättre.

Slutsats

Sammanfattningsvis, en liten punkt till: Om du har konfigurerat allt du ville ha på servern och bestämt dig för att inaktivera ISP-kontrollpanelen, eller om din licens för den har löpt ut, kom ihåg att "kärnprocessen" från den kommer att förbli kvar din server. När månaderna går kan den växa sig större, så det är bättre att "döda" den och ta bort den från autorun och crona.

Om du vill testa sidan själv med hjälp av Loaddy eller andra metoder finns den tillgänglig på

Webbhotellbranschen kräver åtminstone en del grundläggande kunskaper för att fungera. Det finns flera webbhotelltermer som alla webbansvariga bör vara medvetna om. En av de mest grundläggande är: webbserver I verkligheten består webbhotell av webbservrar som ger plats åt din webbplats. HP Micro AMD N40L Server är en mångsidig server som kan tillhandahålla en plattform för att organisera och skydda affärsinformation, möjliggöra effektiv kundkommunikation och få ut det mesta av din befintliga kontorsutrustning och resurser. HP MicroServer är en kostnadseffektiv startserver för företag med mindre än 10 klienter, och den kan ta ditt företag till nya nivåer av produktivitet och effektivitet. För att lära dig mer om HP Micro AMD N40L Server, följ den här länken http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

webbserver kan betyda två saker - dator, som är värd för webbplatsen och program, som körs på en sådan dator. Därför är termen relaterad till webbservern både hårdvara och mjukvara . Vi kommer att titta på dessa två typer en i taget.

Webbserverhårdvara

Webbplatsen är en samling webbsidor som är digitala filer som vanligtvis är skrivna med hypertextmarkeringsspråket HTML. Webbplatsen kommer att vara tillgänglig för hela världen hela tiden, för detta måste den lagras antingen på ett webbhotell eller på en dator ansluten till Internet 24/7/365. En sådan dator kallas Webbserver (observera att de första bokstäverna är versaler).

Du kan potentiellt hosta en webbplats på din hemdator, men detta kräver mycket arbete och konstant övervakning.Det är lättare att köpa webbhotell från ett företag eftersom det finns tusentals av dem som erbjuder denna tjänst till rimliga priser. Kort om ett av de bästa företagen i slutet av artikeln, du kan inte bara få webbhotell, utan även ett domännamn och hemsida och det är riktigt billigt!

Det finns ett antal krav på en datorserver - den måste vara tillräckligt snabb, ha en stor mängd RAM och HDD med stor volym Men det viktigaste är att ha en permanent adress på Internet, även känd som en IP - Internet Protocol-adress. Om webbplatsens IP-adress inte hittas och det kommer att fungera off-line- webbläsaren kommer att visa ett fel kan inte hitta hemsidan.

Webbserverprogram och mjukvara

Program webbserver Detta är programvara som kör en webbplats på en värddator. Dess huvudsakliga mål: problem webbsidor; detta betyder att den lyssnar efter förfrågningar från webbläsare (även känd som kunder ) och svarar genom att skicka tillbaka nödvändig data. Denna klient-server-interaktion är en utmärkande del av hur en webbserver fungerar..

Det finns många webbserverprogram. Den mest kända och populära av dem är Apache, utvecklat av Apache Foundation. Apache är inte bara gratis, utan det är också tillgängligt för flera operativsystem, inklusive Windows, Macintosh och Linux/Unix.

Även om termerna webbserver och applikationsserver ofta används omväxlande för att hänvisa till samma sak, det vill säga för att säkerställa att en webbplats fungerar korrekt, är de inte samma sak. Snarare arbetar de tillsammans för att leverera innehåll från webbplatser till slutanvändare. En webbserver kan hänvisa till ett program som accepterar och uppfyller inkommande förfrågningar från klienter om webbresurser runt om i världen. Den betjänar dessa förfrågningar tillsammans med valfritt innehåll, vilket vanligtvis är HTML-sidor, bildfiler, videofiler, etc. Applikationsservern serverar dynamiskt innehåll till slutanvändare med hjälp av olika protokoll, inklusive HTTP. Den här artikeln förklarar skillnaden mellan de två.

Vad är en webbserver?

En webbserver är inget annat än ett program utformat för att hantera webbförfrågningar. Den accepterar inkommande förfrågningar i form av statiskt innehåll, som i grunden är webbplatskomponenter inklusive HTML-sidor, grafik och videofiler, etc. Den svarar sedan på förfrågningar över HTTP tillsammans med ytterligare datainnehåll. En webbservers huvudsakliga uppgift är att tillhandahålla innehåll till World Wide Web för att göra det tillgängligt för slutanvändare. Det kan hänvisa till ett system som består av hårdvara eller mjukvara, eller där webbinnehåll lagras. Tala med enkla ord, är en webbserver en dator som levererar webbsidor när de efterfrågas. Apache är den mest populära och mest använda webbservern med öppen källkod som utvecklats och underhålls av Apache Software Foundation.

Vad är en applikationsserver?

Applikationsserver är en term som ofta förväxlas med webbserver, förutom att den kan använda olika strategier för att hantera förfrågningar som initieras av webbservern. Detta gör det enklare att vara värd för och leverera affärsapplikationer av hög kvalitet. Det ses ofta som en applikation i tre nivåer som består av GUI användare (GUI), applikationsserver och databas- och transaktionsserver. Det tjänar affärslogik till applikationsprogram genom olika protokoll, inklusive men inte begränsat till HTTP. Det är ett ramverk för programvara som tillhandahåller alla funktioner som behövs för att skapa och köra webbaserade och företagsapplikationer. Istället för att visa statiskt innehåll är det bäst lämpat för att visa dynamiskt innehåll och överföra applikationer från en enhet till en annan.

Skillnaden mellan webbserver och applikationsserver

Webb- och applikationsservergrunderna

En webbserver avser hårdvaran eller mjukvaran, eller båda, som levererar innehåll eller tjänster till slutanvändare över World Wide Web. Det är mer som ett program som svarar på inkommande nätverksförfrågningar om webbresurser med hjälp av HTTP-protokollet. Den är också känd som en internetserver. Å andra sidan är en applikationsserver ett komponentbaserat mjukvaruramverk som gör det lättare att utveckla och köra webbapplikationer. I huvudsak är det ett serverprogram på mellannivå som är utformat för att tillhandahålla affärslogik för applikationsprogram.

Webbservern är begränsad till endast HTTP-innehåll, vilket innebär att den använder HTT-protokollet för att lagra, bearbeta och leverera innehåll till klienter. Det är en kraftfull dator som gör webbplatser tillgängliga över Internet, och kommunikationen mellan klienten och servern sker med hjälp av HTTP. Applikationsservern är inte begränsad till att skicka statiskt HTML-innehåll; Faktum är att den kommunicerar affärslogik till klientapplikationer med hjälp av flera protokoll.

Webbserver och applikationsserverfunktion

En webbservers uppgift är att acceptera och svara på förfrågningar från användare som omdirigeras av deras datorers HTTP-klienter, vilket kan vara antingen från en webbläsare eller från mobil-app. Huvudsyftet med en webbserver är att göra statiskt innehåll tillgängligt för användare att se i webbläsare. En applikationsservers uppgift är att vara värd för och publicera applikationer och affärslogikprocesser med hjälp av flera olika protokoll. Det fungerar tillsammans med en webbserver.

Multithreading

Webbservern svarar på förfrågningar som kommer från flera anslutningar samtidigt, men kan inte behandla flera samtidiga förfrågningar parallellt. Idén med att använda trådar för att förbättra bearbetningshastigheten fungerar helt enkelt inte med webbservrar. Å andra sidan stöder applikationsservrar multi-threading såväl som ett antal andra funktioner som isoleringsdelning, pooling, lastbalansering, klustring, etc.

Webbserver och applikationsserverkapacitet

Webbservern är baserad på internet- och intranätrelaterade program för att betjäna e-post, nedladdningsförfrågningar FTP-filer, och för att skapa och publicera webbsidor för klienter som använder HTTP-protokollet. Den kan användas ensam eller som en komponent i en applikationsserver. Å andra sidan kan applikationsservrar göra allt som applikationsservrar kan göra och mycket mer. De är mer kapabla att skapa dynamiskt innehåll för att tjäna både webb- och företagsapplikationer.

Webbserver vs applikationsserver: jämförelsetabell

Sammanfattning av webbserver vs. Applikationsserver

Webbservrar spelar en grundläggande roll för hur Internet fungerar, utan vilket Internet upphör att existera. Enkelt uttryckt fungerar webbservrar som en gateway mellan användaren och World Wide Web. Det är ett system utformat för att leverera statiskt innehåll till slutanvändare över Internet. Det är begränsat till att begära betjänande klienter enbart via HTTP-protokoll. Däremot är applikationsservrar mer resurskrävande, som tillhandahåller mellanprogramtjänster till klientapplikationer via olika protokoll, inklusive HTTP. Det är en plattform designad för installation, drift och hosting av applikationer och tjänster för slutanvändare. Även om båda är nödvändiga för att webbplatsen ska fungera korrekt är de väldigt olika varandra.


Topp