Velge driftsmodus for webserveren basert på personlig erfaring. Grunnleggende om webapplikasjoner Hva trengs for at en webserver skal fungere

Hvis du skriver inn http://www.site/how-web-server-work/ i adressefeltet til nettleseren din og trykker på Enter-tasten, vil denne siden på nettstedet vårt vises på skjermen.

På det mest grunnleggende nivået skjedde følgende: Nettleseren din opprettet en forbindelse til webserveren, sendte en forespørsel om å få tak i nettsiden til siden og mottok den.

Nå litt mer detalj:

URL-en består av tre deler:

1. Protokoll (http)

2. Servernavn (www.site)

3. Sideadresser (hvordan-nettserver-fungerer)

Nettleseren kontakter domenenavnserveren for å oversette nettstednavnet www.site til IP adresse, som den bruker for å koble til servermaskinen. Nettleseren oppretter deretter en tilkobling til webserveren på den angitte IP-adressen på port 80 eller en hvilken som helst annen hvis det er ment (vi vil diskutere porter senere i denne artikkelen).

Etter HTTP-protokollen sendte nettleseren en forespørsel til serveren og ba om filen http://www.site/how-web-server-work/

noter det informasjonskapsler kan også sendes fra nettleseren til serveren.

Som svar genererte serveren dynamisk nettside og sendte tilbake HTML-tekst for å vise denne siden i nettleseren din. Informasjonskapsler kan også sendes fra serveren til nettleseren i sidehodet. Nettleseren leser HTML-taggene og produserer nettsideutdata på skjermen.

Internett

Så hva er "Internett"? Internett består av hundrevis av millioner av datamaskiner koblet sammen i datanettverk. Et nettverk lar alle datamaskiner kommunisere med hverandre. Hjemmedatamaskin kan kobles til Internett ved å bruke det meste forskjellige måter og enheter - starter med et primitivt modem for en telefonlinje, laster opp en forbindelse via lokalt nettverk (LAN) med Internett-leverandør ( ISP).

Store Internett-leverandører støtter fiberoptiske linjer for et helt land eller en region. Det legges ryggradsnettverk over hele verden, koblet sammen via fiberoptiske linjer, sjøkabler eller satellittforbindelser. Dermed er hver datamaskin på Internett koblet til alle andre datamaskiner på Internett.

Klienter og servere

Generelt kan alle datamaskiner på Internett deles inn i to kategorier: servere og klienter. Datamaskiner som leverer tjenester (som webservere, FTP-servere, skytjenester) til andre maskiner servere. Maskinene som brukes til å koble til disse tjenestene er − klienter. Når du kobler til Google for å utføre et søk eller bruke noen av tjenestene deres, leverer Google datamaskinen sin (muligens en hel klynge med kraftige datamaskiner) for å betjene forespørselen din. Så Google leverer serveren. Maskinen din kan også tilby tjenester til noen på Internett. Dermed er brukermaskinen vanligvis en klient, selv om den også kan bli en server om nødvendig.

En server kan tilby en eller flere tjenester på Internett. For eksempel kan en serverdatamaskin ha programvare installert som lar den fungere som en webserver, e-postserver og FTP-server. Klientdatamaskiner som blir med på serveren, sender forespørslene sine til spesiell programvare som kjører på en delt serverdatamaskin. For eksempel, hvis du bruker en nettleser på datamaskinen din, vil den "snakke" til nettserveren på serverdatamaskinen. E-postapplikasjonen din vil "snakke" til serveren E-post, og så videre.

IP-adresser

For å koble alle disse maskinene til et nettverk, har hver datamaskin på Internett en unik adresse kalt IP adresse. En typisk IP-adresse ser slik ut:

De fire tallene i en IP-adresse kalles oktetter fordi de kan ta verdier mellom 0 og 255 eller 2 8 mulige verdier.

Hver datamaskin på Internett har sin egen unike IP-adresse. Serveren har en statisk IP-adresse som sjelden endres. En hjemmedatamaskin har ofte en IP-adresse tildelt av Internett-leverandøren når maskinen kobles til den. Denne IP-adressen er unik for denne økten, men kan være annerledes neste gang. På denne måten trenger Internett-leverandøren bare én IP-adresse for hver ruter den støtter, ikke for hver klient.

Hvis du bruker en Windows-maskin, kan du se mye informasjon om Internett på datamaskinen din, inkludert din nåværende IP-adresse og vertsnavn, ved å bruke kommandoen ipconfig. På en UNIX-maskin må du skrive nsoppslag V kommandolinje for å vise maskinens IP-adresse.

Domenenavn

Fordi de fleste har problemer med å huske nummersekvensen som utgjør IP-adresser, og fordi IP-adresser noen ganger må endres, har alle servere og nettsteder på Internett også menneskelesbare navn som kalles domenenavn. For eksempel www.. Dette er lettere for de fleste av oss å huske www.nettsted enn å huske 5.9.205.233

Navnet www.site består faktisk av tre deler:

1. World Wide Web-navn (www). Faktisk kan du gjøre det uten å spesifisere "www", selv om dette formelt sett vil være et annet nettverk.

2. Domenenavn (qriosity)

3. I toppdomenesonen (ru)

Domenenavn få til Domenenavnregistratorer. Registrarer oppretter toppnivådomenenavn og sørger for at alle navn i domenets toppnivåsone er unike. Registraren gir også kontaktinformasjon for hvert domenenavn og lanserer tjenesten hvem er, som indikerer eieren av domenet. Vertsnavnet er opprettet av eieren av domenet.

Domenenavnservere

Et sett med servere kalt domenenavnservere(DNS) kartlegger menneskelesbare navn til IP-adresser. Disse serverne inneholder enkle databaser med navn og IP-adresser, og de er distribuert over hele Internett. De fleste enkeltbedrifter, Internett-leverandører og store universiteter støtter små DNS. Det er også sentrale DNS-er som bruker data levert av domenenavnregistratorer.

Når du skriver inn URL http://www..site, sender den til domenenavnserveren, returnerer serveren riktig IP-adresse for www.site. En rekke navneservere kan være involvert i å få riktig IP-adresse.

Så la oss gjenta det vi leser: Internett består av millioner av maskiner, hver med en unik IP-adresse. Mange av disse bilene er servere. Dette betyr at de leverer tjenester til andre datamaskiner på Internett. Mange av disse serverne er e-postservere, webservere, FTP-servere, skytjenesteservere.

Havner

Enhver server gjør sine tjenester tilgjengelige via Internett ved hjelp av nummererte havner, en for hver tjeneste tilgjengelig på serveren. For eksempel er det en serverdatamaskin som kjører en webserver og en FTP-server. Nettserveren vil typisk være tilgjengelig på port 80, og FTP-serveren vil være tilgjengelig på port 21. Klienter kobler seg til tjenesten på en bestemt IP-adresse og på en bestemt port.

Hver av de mest populære tjenestene er tilgjengelige på et forhåndskjent portnummer, men du kan tilordne ditt eget portnummer til enhver tjeneste.

Hvis serveren godtar tilkoblinger på en port fra verden utenfor, og hvis brannmuren ikke beskytter portene, kan du koble til en forhåndsbestemt port fra hvilken som helst datamaskin på Internett og bruke tjenesten. Merk at det ikke er noe som tvinger deg til for eksempel å holde webserveren på port 80. Hvis du installerte serveren din og lastet webserverprogramvaren på den, kan du sette webserveren på port 999, eller en annen ubrukt port . Så, hvis for eksempel maskinen din er kjent som xxx.yyy.com, kan de koble til den fra URL-en http://xxx.yyy.com:999 -":999" indikerer tydelig portnummeret som din webserver kan nås gjennom. Hvis porten ikke er spesifisert, antar nettleseren ganske enkelt at webserveren er tilgjengelig ved å bruke den velkjente porten 80.

Protokoller

Når en klient er koblet til en tjeneste på en gitt port, får den tilgang til tjenesten ved hjelp av en spesiell protokoll. Protokoll er et sett med konvensjoner på logisk nivå som lar programmer utveksle data. For å arbeide sammen mellom datamaskiner på Internett, brukes TCP/IP-familien av protokoller. Nettserveren bruker HTTP-protokollen.

Tillegg: Sikkerhet

Du kan se fra denne beskrivelsen at webserveren er et ganske enkelt stykke arbeid programvare. Den tar navnet på filen som sendes med GET-kommandoen, mottar filen og sender den til nettleseren. Selv om du tar med all koden for håndtering av porter, består et enkelt webserverprogram av ikke mer enn 500 linjer med kode. Fullskala webservere er mer komplekse, men i kjernen er de også veldig enkle.

De fleste servere setter et visst nivå sikkerhet til tjenesteprosesser. Det enkleste alternativet er å be om pålogging og passord for å få tilgang til serveren. Mer avanserte servere legger til ekstra sikkerhet ved å etablere en kryptert forbindelse mellom serveren og nettleseren, så konfidensiell informasjon(f.eks. kredittkortnumre) kan sendes over Internett.

Dette er egentlig alt som trengs for en webserver som serverer standard, statiske nettsider. Statiske sider er sider som ikke endres med mindre webmaster selv redigerer dem.

I tillegg: Dynamiske sider

Hva har skjedd dynamisk nettsider? For eksempel:

1. Enhver gjestebok lar deg skrive inn en melding i HTML-form, og viser nye og gamle oppføringer automatisk.

2. En hvilken som helst søkemotor lar deg skrive inn nøkkelord i et HTML-spørringsskjema, og deretter oppretter den dynamisk en side basert på å søke etter informasjon ved hjelp av disse nøkkelordene.

I alle disse tilfellene gjør webserveren mer enn bare "søke etter en fil." Den behandler informasjon og genererer sider avhengig av spesifikke forespørsler. I nesten alle tilfeller bruker webserveren den såkalte skript- programkode skrevet i PHP, Perl, Java og andre programmeringsspråk for å fullføre denne prosessen.

Sidene på nettstedet vårt er også dynamiske, laget av PHP hjelp ved hjelp av MySQL-databaser.

Internett server (Internett server) er en server som er ansvarlig for å motta og behandle forespørsler (HTTP-forespørsler) fra klienter til et nettsted. Klientene er vanligvis forskjellige nettlesere. Som svar utsteder webserveren HTTP-svar til klienter, i de fleste tilfeller sammen med en HTML-side, som kan inneholde alle typer filer, bilder, mediastrøm eller andre data.

Nettserveren utfører også funksjonen med å utføre skript, som CGI, JSP, ASP og PHP, som er ansvarlige for å organisere forespørsler til nettverkstjenester, databaser, filtilgang, videresending av e-post og andre e-handelsapplikasjoner.

Begrepet "webserver" gjelder også for tekniske enheter og programvare som utfører funksjonene til en webserver. Dette kan være en datamaskin som er spesielt valgt fra en gruppe personlige datamaskiner eller en arbeidsstasjon der tjenesteprogramvare er installert og kjører.

Brukerens klient, som primært er en nettleser, sender forespørsler til webserveren om å få ressurser identifisert av URL-er. Ressurser er HTML-sider, digitalt medieinnhold, mediestrømmer, ulike bilder, datafiler eller andre data som kreves av klienten. Som svar sender webserveren klienten de forespurte dataene. Denne utvekslingen skjer ved hjelp av HTTP-protokollen.

HTTP (engelsk: HyperText Transfer Protocol) er en nettverksprotokoll for applikasjonslaget for dataoverføring. Hovedprinsippet for HTTP-protokollen er klient-server-teknologien, som sikrer interaksjon mellom nettverket og brukeren.

Når det gjelder en liten organisasjon, kan en webserver være et integrert system, som vil bestå av: HTTP-server - brukes til forespørsler til nettsider; FTP-server – brukes til å laste ned filer via Internett; NNTP-servere – gir tilgang til nyhetsgrupper; SMTP-server – for e-post.

Historie

Den britiske vitenskapsmannen Tim Berners-Lee regnes som oppfinneren av den første webserveren. Han har jobbet siden 1980 ved European Nuclear Research Laboratory (Conseil Européen pour la Recherche Nucléaire, CERN) som programvarekonsulent, og begynte sitt utviklingsarbeid. I Genève utviklet han for sine egne behov programmet Inquire, som brukte tilfeldige assosiasjoner til å lagre data og la konseptet til grunnlaget for World Wide Web.

I 1989 foreslo Tim Berners-Lee, som jobbet på CERNs intranett, grunnleggelsen av et globalt hypertekstprosjekt, som besto av å publisere hypertekstdokumenter koblet sammen med hyperlenker. Gjennomføringen av dette prosjektet, etter hans mening, ville gjøre det lettere for CERN-forskere å kombinere, søke og utveksle informasjon. For å implementere prosjektet oppfant Tim Berners-Lee, sammen med assistentene sine, URI- og URL-identifikatorene, HTTP-protokollen og HTML-språket. Alle disse teknologiene er nå mye brukt i det moderne Internett og kan ikke lenger gjøres uten dem.


Som et resultat av dette prosjektet utviklet Berners-Lee verdens første webserver, kalt "httpd", samt verdens første hypertekstnettleser for NeXT-datamaskinen, kalt WorldWideWeb.

Den første nettleseren kjørte på NeXTSTEP-plattformen, et objektorientert, multitasking-operativsystem, og ble utviklet ved hjelp av Interface Builder. Nettlesergrensesnittet var veldig enkelt og nesten all informasjon ble vist i tekstformat med bare noen få bilder. I tillegg til standard FTP-protokollen brukte Tim Berners-Lee den nye HTTP-protokollen, som han fant opp. Mellom 1991 og 1993 foredlet og publiserte Berners-Lee de tekniske egenskapene til sine nye utviklinger: URIer og URL-er, HTTP-protokollen og HTML-språket. Nettleseren ble senere omdøpt til "Nexus" for å unngå forvirring med operativsystemet som nettleseren ble utviklet på og navnet.

Verdens første nettserver og første nettleser kjørte på den personlige datamaskinen NeXTSTEP; denne datamaskinen er nå utstilt på CERN (Microcosm) museum.

Tim Berners-Lee var vert for verdens første nettsted på http://info.cern.ch; Denne siden er nå arkivert. Det første nettstedet dukket opp på Internett 6. august 1991. På denne nettsiden ble det gitt:

  • beskrivelse av World Wide Web;
  • bruksanvisning riktig installasjon Internett server;
  • informasjon om hvordan du kjøper en nettleser;
  • annen teknisk informasjon.

Denne siden var også verdens første nettkatalog. Berners-Lee la ut en liste over lenker til andre nettsteder på den og oppdaterte den regelmessig.

12. desember 1991 ble verdens første webserver installert ved Stanford Linear Accelerator Center (SLAC) i USA.

Grunnleggende og tilleggsfunksjoner

Alle grunnleggende og tilleggsfunksjoner til webserveren:

  • Motta forespørsler fra nettlesere via HTTP-standarden ved bruk av TCP/IP-nettverksprotokoller;
  • Søke og sende filer med hypertekst eller dokumenter til nettleseren via HTTP;
  • Service og behandling av forespørsler, som: mailto, FTP, Telnet, etc.;
  • Lansering av applikasjonsprogrammer på en webserver med påfølgende overføring og retur av prosessparametere via CGI-grensesnittstandarden;
  • Drift og vedlikehold av navigasjonsbildekart (Bildekart);
  • Administrasjon og drift av serveren;
  • Autorisasjon av brukere og deres autentisering;
  • Vedlikeholde en logg over brukerforespørsler til ulike ressurser;
  • Automatisert drift av nettsider;
  • Støtte for sider som genereres dynamisk;
  • Støtte for HTTPS-protokollen for sikre tilkoblinger med klienter.

Beskrivelse av webserveren

Nettlesere kommuniserer med nettservere ved hjelp av Hypertext Transfer Protocol (HTTP). Det er en enkel forespørsels- og svarprotokoll for å sende informasjon ved hjelp av TCP/IP-protokollen. Nettserveren mottar forespørselen, oppdager filen, sender den til nettleseren og lukker deretter forbindelsen. Grafisk informasjon som finnes på siden behandles på samme måte. Deretter er det nettleserens tur til å vise HTML-dokumentet lastet ned fra Internett på brukerens skjerm.

I tillegg til HTML-sider og grafikk, kan webservere lagre alle filer, inkludert tekstdokumenter, tekstbehandlingsdokumenter, videofiler og lydinformasjon. I dag, hvis du ikke tar hensyn til spørreskjemaene som brukerne fyller ut, overføres hoveddelen av nettrafikken i én retning - nettlesere leser filer fra nettserveren. Men dette vil endre seg med den generelle bruken av PUT-metoden beskrevet i HTTP 1.1-utkastet, som lar filer skrives til webserveren. I dag brukes PUT-metoden hovedsakelig av brukere som lager nettsider, men i fremtiden kan det også være nyttig for andre brukere å gi tilbakemeldinger til informasjonssentre. PUT-forespørsler er mye enklere enn vanlig POST-opplasting av filer til en webserver.

Ulike applikasjoner utfører også arbeidet sitt på webserveren, de mest populære er søkemotorer og verktøy for å kommunisere med databaser. Standardene som brukes til å utvikle disse applikasjonene inkluderer Common Gateway Interface (CGI), JavaScript-skriptspråk og Java programmering og VisualBasic. I tillegg til CGI-standarden har noen webserverselskaper laget appli(API), som Netscape Server API og Internet Server API, som ble laget av Microsoft og Process Software AG. Disse grensesnittene lar utviklere få direkte tilgang til spesifikke webserverfunksjoner. Noen webservere tilbyr mellomvare for å koble til databaser, noe som kan kreve avansert programmeringskunnskap for å fungere.

Grunnleggende søkefunksjoner hjelper brukere med å sortere informasjonen de trenger, og databaseverktøy gir nettleserbrukere tilgang til denne informasjonen.

Webserveroversikt

Kriteriene for å velge en webserver kan omfatte ulike egenskaper: installasjon, konfigurasjon, serveradministrasjon, administrasjon, administrasjon av informasjon som ligger på serveren, beskyttelse av denne informasjonen, tilgangskontroll, og ytelse.

De fleste webservere er enkle og raske å installere.

Den vanskeligste delen av installasjonsprosessen er å konfigurere flere domenenavn på ett fysisk enhet eller med andre ord organisering av virtuelle servere.

Nettservere har verktøy for å administrere informasjonsmodulen som kjennetegner den overordnede organiseringen av nettstedet, og har også verktøy for å kontrollere riktigheten av interne og eksterne hypertekstlenker. Netscape Communications' LiveWire-pakke, som leveres med Novell Open Enterprise Server (OES) og er valgfritt tilgjengelig med FastTrack Server, har et vertsadministrasjonsverktøy som viser alle koblinger for en valgt side. Dette verktøyet gir også en generell liste over alle feil tilkoblinger som det oppdager. O'Reilly & Associates' WebView har samme funksjonalitet og kan vise et detaljert filtre med alle ugyldige lenker uthevet i rødt.

Det finnes også grunnleggende verktøy for å administrere innholdsmateriale. Nettadministratorer må velge hvor filene skal lagres og hvordan disse filene skal få tilgang til av brukere som får tilgang til webserveren. Dette krever kartlegging mellom logiske URL-er og fysiske filkataloger. Hver programvare utfører denne operasjonen på sin egen unike måte.

Med den økende populariteten til webservere og deres økende bruk i intranett, øker kommersiell aktivitet på Internett, så viktigheten av å beskytte informasjon øker. Oftere enn ikke er nettserversikkerhetssystemer enten overkill eller utilstrekkelige for dagens intranett. Dersom det er nødvendig å begrense tilgangen til visse opplysninger i bedriften, er det et valg mellom å bruke ukrypterte passord som overføres over kommunikasjonskanaler, og å bruke SSL-protokoll(engelsk: Secure Sockets Layer) er en kompleks og langsom metode som brukes til å kryptere passord og data.

For å organisere arbeidet til individuelle brukere og deres grupper kan brukes interne applikasjoner server eller visse operativsystemfunksjoner. For å organisere arbeidet til individuelle brukere og deres grupper, kan interne serverapplikasjoner eller visse funksjoner i operativsystemet brukes. Microsoft IIS Batch Service gir støtte for det underliggende nettverksoperativsystemet Windows NT.

NetWare Web Server fra Novell, Inc. Fullt integrert med adressekatalogtjenester (NetWare Directory Services, NDS). Det er praktisk å administrere brukere fra et felles senter, men det kan utgjøre en sikkerhetsrisiko. Passord distribueres ukryptert over kommunikasjonskanaler, og hvis de blir fanget opp, er ikke bare webserveren i fare, men sikkerheten til hele nettverksoperativsystemet er i fare.

Applikasjonsutvikling er en av hovedfunksjonene til en webserver. Applikasjonsutviklingsmiljøet og databasetilkoblingsverktøyene er svært viktige for å utvide funksjonene til webserveren, siden applikasjonsutvikling avhenger av ulike særegne detaljer i applika(API), så vel som av egenskapene til programmeringsspråk eller individuelle preferanser til programmerere.

Nettservere kan betjene en rekke systemer fra små bedrifters intranett til store webinformasjonssentre som brukes av millioner av mennesker.

For små bedriftsintranett er den beste pakken å bruke Internet Information Server (IIS), opprettet og distribuert av Microsoft. IIS har en ganske enkel installasjon og enkle innstillinger konfigurasjoner. Denne webserverpakken er godt integrert med tilgangskontroller, systemovervåkingsverktøyet Performance Monitor og Event Viewer. IIS-nettserveren gir også flere verktøy for dynamisk overføring av informasjon fra databaser. IIS er veldig rask. IIS-komponenter støtter protokoller som: HTTP, HTTPS, FTP, NNTP, SMTP, POP3.

For å gjøre det enklere å lage webinformasjonssentre kommer de fleste webservere med verktøy og verktøy for å administrere innhold. Foruten HTML-redigerere og dokumentformatkonverterere, er de mest nyttige verktøyene URL-kontroller, som sikrer at alle hypertekstlenker på nettstedet ditt fungerer.

Enhver personlig datamaskin som er koblet til Internett kan gjøres om til en webserver hvis du installerer spesiell serverprogramvare på den.

De vanligste webserverne er Apache (Apache Software Foundation), IIS (Microsoft) og iPlanet server (fra Sun Microsystems og Netscape Communications Corporation). Nå på markedet for webserverprogramvare er det et stort utvalg av produkter, både kommersielle og gratis.

En av de vanligste webserverne er Apache fra Apache Software Foundation. Det er anslått at det brukes på 65 % av alle webservere i verden. En av hovedfordelene med Apache-programvare er at den er gratis å distribuere. Utviklerne fikser regelmessig feil funnet og gir god brukerstøtte. Denne webserveren støtter et stort antall moduler, verktøy og tillegg. Siden Apache helt fra starten ble utviklet som programvare for administratorer og avanserte brukere, er ulempen at den er vanskelig å konfigurere og vedlikeholde for uerfarne webmastere.

Neste i popularitet er IIS-nettserveren fra Microsoft. I følge Netcraft står IIS-nettserveren for 12,46 % av det totale antallet webservere. Dette produktet er en del av Windows NT-familien av serverprogramvare. Hovedfordelene er stabilitet, høy hastighet og muligheten til å koble til tilleggsmoduler. Microsoft streber etter å sikre at enhver bruker kan bruke produktene deres uten hjelp fra spesialister hvis de trenger å løse standardproblemer. Derfor er IIS veldig enkelt å installere, konfigurere og vedlikeholde. Nettserveren støtter .NET-teknologi, som nylig har blitt populær blant utviklere og profesjonelle brukere. Disse fordelene tar IIS-nettserveren til neste nivå, og du kan forvente at bruken av den vil øke.

Andre kjente webservere:

  • nginx er en gratis webserver og e-postproxy-server utviklet av Igor Sysoev. Enkel, rask og pålitelig server. Fungerer på Linux og andre Unix-lignende systemer operativsystemer, så vel som på Windows. Populært på store nettsteder;
  • lighttpd- gratis webserver. Utviklet av Jan Kneschke. Rask og sikker webserver. Fungerer på Linux og andre Unix-lignende operativsystemer, samt Windows;
  • Google Web Server- en nettserver som er basert på Apache og brukes av Google til å organisere sin nettinfrastruktur;
  • Harpiks- en gratis webserver og applikasjonsserver for Java. Utviklet av Caucho Technology Inc.;
  • Cherokee- en gratis webserver som kun kontrolleres gjennom webgrensesnittet. Skrevet i programmeringsspråket C;
  • Rootage- en webserver skrevet i programmeringsspråket Java. Fungerer på Linux og Windows;
  • THTTPD- en enkel, liten, rask og sikker webserver. Utviklet av ACME Labs Software.

Nettserverklienter

Vanligvis er klienten en nettleser. Men forskjellige andre enheter og programmer kan også få tilgang til webserveren:

  • En nettleser installert på en stasjonær personlig datamaskin;
  • En nettleser installert på en PDA eller annen bærbar enhet;
  • Mobiltelefoner og smarttelefoner som brukeren får tilgang til webserverressurser med via WAP-protokollen;
  • Ulike programmer som kan få tilgang til webserveren uavhengig for å oppdatere eller innhente annen informasjon. Et eksempel er ulike antivirus som med jevne mellomrom kontakter webserveren for å oppdatere databasen;
  • Ulike digitale enheter, samt noen husholdningsapparater.

Denne artikkelen vil være nyttig for de som allerede har sin egen nettside, eller som planlegger å åpne en. Artikkelen vil være spesielt interessant for ambisiøse webmastere som føler at den fineste timen av prosjektet deres er rett rundt hjørnet og ønsker å forberede seg på tilstrømningen av besøkende på siden.

Selv de som bare drømmer om tusenvis av brukere på nettsiden deres har sikkert lurt på: "Hvor mange brukere vil nettstedet mitt støtte hvis de logger på samtidig?" Jeg husker umiddelbart det velkjente uttrykket "Habraeffect" - fenomenet med en feil på nettstedet som ikke var klar for mange overganger til det etter at en lenke dukket opp på Internett.

La oss anta at det allerede er et nettsted (eller det kommer snart): hvor skal vi plassere det? Skal det være en klassisk hosting eller en VPS-server? Hvis vps, hvilken og hvordan konfigureres den best? Eller kanskje det ikke er noen forskjell i det hele tatt, og det er lettere å velge hva som er billigere? I denne artikkelen skal vi se på flere alternativer og se i praksis hvilken som passer best for nettstedet vårt.

Vi vil eksperimentere: angi forskjellige serverdriftsmoduser og måle ytelse. Vi vil simulere belastningen på nettstedet ved å bruke Loaddy.com-tjenesten. Der kan du stille inn antall brukere, økende type belastning, og grafen vil vise hvordan serveren reagerer på dem. Det antas at én bruker genererer omtrent én forespørsel til nettstedet innen 10 sekunder. Som en testside, la oss ta en demo-nettbutikk på cms moguta. Den vil bli fylt med test-"produkter" som vises på hovedsiden i henhold til flere kriterier (det vil si at når man oppretter siden, jobbes det med databasen osv.). På en eller annen måte vil dette tillate deg å sammenligne modusene med hverandre.

Som en testside vil vi lage en VPS-server på Ubuntu OS. Konfigurasjonen vil være . Vi vil anta at dette er serverne inngangsnivå opprettet i de fleste tilfeller for nye prosjekter. Testversjonen av nettbutikken vil være tilgjengelig på IP-adressen http://130.193.44.219/

Klassisk hosting vil også komme godt med, som vi også vil laste opp samme nettbutikk til for å gjennomføre tester. Du kan følge vår vei selv og gjennomføre de samme testene på prosjektet ditt!

Siden det i de fleste tilfeller tilbys et kontrollpanel sammen med vps, vil vi gjøre hovedendringene i innstillingene i det. På vps-serveren har vi 3 driftsmoduser tilgjengelig for oss:

  • Apache;
  • Apache i CGI-modus;
  • Nginx + php-fpm (uten Apache).
Men først, la oss teste det på hosting:

Klassisk billig hosting

Feil vises når antall besøkende overstiger 50 personer. Vertskapet slutter å levere innhold, og hvis vi går til kontrollpanelet for vertskapet, kan vi se noe slikt som følgende:

Nettstedet ditt har blitt begrenset de siste 24 timene. CPU-ressurser er begrenset for nettstedet ditt. Du har nådd grensene for inndataprosesser (antall PHP- og CGI-skript som kjører samtidig, planlagte jobber og konsolløkter) 126 ganger.
Vel, selvfølgelig, hosting er hosting, spesielt billig. Du kan selvfølgelig finne en tariff som vil gi flere muligheter, men alt dette må tas i betraktning, og på en eller annen måte finne ut de nøyaktige dataene om restriksjonene fra hver vertsleverandør.

VPS: Apache

Neste i rekken er vår test-VPS med Apache-modus, som for øvrig tilbys som standard når du installerer ISP-kontrollpanelet.

Problemer begynner når antall brukere overstiger 90. Hvis vi logger inn på serveren vår via ssh og i dette øyeblikk ser på listen over prosesser ved å bruke toppkommandoen, sortert med Shift+M (etter mengden minne som forbrukes), vil vi se noe sånt som dette:

Vi ser at apache2-prosessen har vokst til mange barn, og de har spist opp all RAM-en til vps-serveren vår.

Her må vi komme med en liten bemerkning. Faktum er at for Apache-serveren, teoretisk sett, er det en modus som tillater, i stedet for et stort antall underordnede prosesser for hver tilkobling, å lage flere såkalte multithreads, som hver vil betjene flere tilkoblinger. Denne modusen kalles arbeider, i motsetning til standard forgaffel. Men å installere det er ikke lett, det er umulig å gjøre dette i paneler som ISP, og hvis du blir forvirret og prøver å gjøre det via ssh, vil du finne ut at for dette er det ikke nok å slå av pregaffel og slå på arbeideren , trenger du også en trådsikker versjon av php. Og hvis moduler som Zend eller IonCube brukes, må de også være trådsikre. Og generelt anbefaler det offisielle PHP-nettstedet ikke å installere denne modusen.

VPS: CGI

La oss se hva som skjer når du bruker CGI-modus. For å gjøre dette må du tillate bruk av PHP i CGI-modus i ISP-kontrollpanelet, dette gjøres i " Kontoer– brukere – innstillinger for brukeren.”

Det viste seg å være et dystert bilde. Serveren nekter å servere innhold selv med 55+ besøkende, RAM er alt spist opp av "php"-prosessene. Deretter kommer et forsøk på å gjenopprette funksjonalitet, men det ender likevel i nesten 100 % feil.

VPS: Nginx + PHP-FPM

Tiden er inne for en modus der Apache-serveren ikke brukes i det hele tatt, Nginx fungerer i stedet, og php behandles av php-fpm-modulen. Hvis du bruker et ISP-kontrollpanel, må du aktivere denne modusen for brukeren. Dette gjøres også i delen "Kontoer - Brukere - Brukerinnstillinger". Denne modusen skal også være tilgjengelig i delen "Innstillinger - Funksjoner - Webserver (www)".

Akkurat det som trengs! 100 % tilgjengelighet, mens lastehastigheten og serverens responstid er på akseptable nivåer, selv om de øker med økende belastning. Likevel takler serveren!

La oss se på tabellen over prosesser i øyeblikket med maksimal belastning på serveren:

Vi ser at vi fortsatt har lager til en overkommelig pris tilfeldig tilgangsminne. Og barneprosesser av php-fpm7.0 vokser ikke i store mengder, men er begrenset til 5 kopier, som hver tjener flere tråder.

Vel, det ser ut til at "vinnerregimet" har blitt bestemt. La oss finne ut hvor mange samtidige besøkende serveren vår kan betjene i denne modusen. Men før det skal vi gjøre en liten "tuning". For det første, siden apache ikke brukes når serveren kjører på denne måten, kan den deaktiveres helt. Vi vil gjøre dette i ISP-kontrollpanelet i delen "System - Tjenester". For det andre, la oss endre litt på prinsippet for å starte php-fpm-prosesser. Som standard er den dynamisk. Dette betyr at barneprosesser vil henge i minnet selv når de ikke er nødvendige. Samtidig frigjøres ikke hukommelsen og over tid kan disse prosessene vokse seg større enn vi ønsker. Derfor foreslås det å installere "ondemand" -modus - on demand. Og angi antall underordnede prosesser og tidsavbrudd for dem.

For å gjøre dette, må du logge på serveren via ssh og skrive disse innstillingene i konfigurasjonen php-fil. Det er praktisk å gjøre dette i en fil for brukeren som domenet ble opprettet for i ISP.

Det er vanligvis plassert i /etc/php/7.0/fpm/pool.d

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

Vi ser følgende standardinnstillinger der:

Pm = dynamiske pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_children = 5 pm.max_spare_servers = 5
For å få ondemand-modus til å fungere, må du erstatte denne med:
pm = ondemand pm.max_children = 17.00.process_idle_timeout = 10s
Og start php-fpm på nytt med kommandoen

Sudo-tjenesten php7.0-fpm omstart
Etter dette vil php-fpm7.0-prosesser bli opprettet på forespørsel (hvis det er en belastning), maksimalt antall av dem vil være = 5, og etter 10 sekunders inaktiv tid vil prosessen bli drept, noe som frigjør RAM.

Bare i tilfelle, la oss kjøre testen på nytt for å sikre at all denne amatøraktiviteten ikke påvirket nettstedets ytelse negativt:

La oss nå kjøre Loaddy med mange besøkende for å se hvor mange tilkoblinger serveren vår kan håndtere:

Den gode nyheten er at alle forespørsler ble behandlet, om enn med lang forsinkelse, med et stort antall av dem per sekund. Serverens responstid nærmer seg 10 sekunder med et antall forespørsler på 190+. Men la oss huske grafen for apache-modusen, der vi fikk 4 sekunders serverrespons allerede med 80+ brukere, mens i php-fpm-modusen lignende forsinkelser er observert med 130 forespørsler, som vi spesifikt uthevet markøren på grafen ovenfor.
Men dette er samme VPS.

Tabell over toppprosesser på slutten av testen (med 200 brukere):

Merk at etter at testingen var fullført, ble minnet brukt av pfp-fpm frigjort:

Dette betyr at serveren vår er klar for nye belastninger.

Det er nødvendig å huske at siden opererer i nginx+php-fpm-modus, dette betyr at apache2 ikke brukes i arbeidet, og som et resultat blir .htaccess ikke brukt. Dette kan virke upraktisk, men det er det raskeste alternativet som er tilgjengelig, og søkemotorer rangerer nettsteder som er raske bedre.

Konklusjon

Avslutningsvis, ett lite poeng til: Hvis du har konfigurert alt du ønsket på serveren og bestemte deg for å deaktivere ISP-kontrollpanelet, eller lisensen din for det har utløpt, husk at "kjerne"-prosessen fra den vil forbli hengende på serveren din. Etter hvert som månedene går, kan den vokse seg større, så det er bedre å "drepe" den og fjerne den fra autorun og crona.

Hvis du ønsker å teste siden selv ved hjelp av Loaddy eller andre metoder, er den tilgjengelig på

Nettvertsbransjen krever i det minste noen grunnleggende kunnskaper for å fungere. Det er flere webhotelltermer som enhver webmaster bør være klar over. En av de mest grunnleggende er: Internett server I virkeligheten består webhotell av webservere som gir plass til nettstedet ditt. HP Micro AMD N40L Server er en allsidig server som kan tilby en plattform for å organisere og beskytte forretningsinformasjon, muliggjøre effektiv kundekommunikasjon og få mest mulig ut av ditt eksisterende kontorutstyr og -ressurser. HP MicroServer er en kostnadseffektiv startserver for bedrifter med mindre enn 10 klienter, og den kan ta bedriften din til nye nivåer av produktivitet og effektivitet. For å lære mer om HP Micro AMD N40L Server, følg denne lenken http://vint.com.ua/product/computers/dir_3010558/dir_3010559 .

Internett server kan bety to ting - datamaskin, som er vert for nettstedet og program, som kjører på en slik datamaskin. Derfor er begrepet knyttet til webserveren både maskinvare og programvare . Vi skal se på disse to typene én om gangen.

Nettserver maskinvare

Nettstedet er en samling nettsider som er digitale filer som vanligvis er skrevet med hypertekst-markeringsspråket HTML. Nettstedet vil være tilgjengelig for hele verden hele tiden; for dette må det lagres enten på en hosting eller på en datamaskin koblet til Internett 24/7/365. En slik datamaskin kalles Internett server (merk at de første bokstavene er store).

Du kan potensielt hoste et nettsted på din hjemmedatamaskin, men dette krever mye arbeid og konstant overvåking.Det er lettere å kjøpe webhotell fra et selskap fordi det er tusenvis av dem som tilbyr denne tjenesten til rimelige priser. Kort om et av de beste selskapene på slutten av artikkelen, du kan ikke bare få webhotell, men også et domenenavn og en nettside og det er veldig billig!

Det stilles en rekke krav til en dataserver - den må være rask nok, ha stor mengde RAM og HDD med stort volum Men det viktigste er å ha en permanent adresse på Internett, også kjent som en IP - Internet Protocol-adresse. Hvis IP-adressen til nettstedet ikke blir funnet og det vil fungere offline- nettleseren vil vise en feil finner ikke nettsiden.

Webserverprogrammer og programvare

Programmer Internett server Dette er programvare som kjører et nettsted på en vertsserverdatamaskin. Hovedmålet: utgave nettsider; dette betyr at den lytter etter forespørsler fra nettlesere (også kjent som klienter ) og svarer ved å sende de nødvendige dataene tilbake. Denne klient-server-interaksjonen er en særegen del av hvordan en webserver fungerer..

Det finnes mange webserverprogrammer. Den mest kjente og populære av dem er Apache, utviklet av Apache Foundation. Apache er ikke bare gratis, men det er også tilgjengelig for flere operativsystemer, inkludert Windows, Macintosh og Linux/Unix.

Selv om begrepene webserver og applikasjonsserver ofte brukes om hverandre for å referere til det samme, det vil si for å sikre at et nettsted fungerer som det skal, er de ikke det samme. Snarere jobber de sammen for å levere innhold fra nettsider til sluttbrukere. En webserver kan referere til et program som aksepterer og oppfyller innkommende forespørsler fra klienter om nettressurser rundt om i verden. Den betjener disse forespørslene sammen med valgfritt innhold, som vanligvis er HTML-sider, bildefiler, videofiler osv. Applikasjonsserveren serverer dynamisk innhold til sluttbrukere ved å bruke forskjellige protokoller, inkludert HTTP. Denne artikkelen forklarer forskjellen mellom de to.

Hva er en webserver?

En webserver er ikke noe mer enn et program utviklet for å håndtere nettforespørsler. Den aksepterer innkommende forespørsler i form av statisk innhold, som i utgangspunktet er nettstedkomponenter inkludert HTML-sider, grafikk og videofiler osv. Den svarer deretter på forespørsler over HTTP sammen med ekstra datainnhold. Hovedoppgaven til en webserver er å gi innhold til World Wide Web for å gjøre det tilgjengelig for sluttbrukere. Det kan referere til et system som består av maskinvare eller programvare, eller hvor nettinnhold er lagret. Snakker med enkle ord, er en nettserver en datamaskin som leverer nettsider slik de blir bedt om. Apache er den mest populære og mest brukte open source webserveren utviklet og vedlikeholdt av Apache Software Foundation.

Hva er en applikasjonsserver?

Applikasjonsserver er et begrep som ofte forveksles med webserver, bortsett fra at den kan bruke forskjellige strategier for å håndtere forespørsler initiert av webserveren. Dette gjør det enklere å være vert for og levere forretningsapplikasjoner av høy kvalitet. Det blir ofte sett på som en tre-lags applikasjon bestående av GUI bruker (GUI), applikasjonsserver og database- og transaksjonsserver. Den serverer forretningslogikk til applikasjonsprogrammer gjennom ulike protokoller, inkludert, men ikke begrenset til, HTTP. Det er et programvarerammeverk som gir alle funksjonene som trengs for å lage og kjøre nettbaserte og bedriftsapplikasjoner. I stedet for å vise statisk innhold, er det best egnet for å vise dynamisk innhold og overføre applikasjoner fra en enhet til en annen.

Forskjellen mellom webserver og applikasjonsserver

Grunnleggende om web og applikasjonsserver

En webserver refererer til maskinvaren eller programvaren, eller begge deler, som leverer innhold eller tjenester til sluttbrukere over World Wide Web. Det er mer som et program som svarer på innkommende nettverksforespørsler om nettressurser ved hjelp av HTTP-protokollen. Det er også kjent som en Internett-server. På den annen side er en applikasjonsserver et komponentbasert programvarerammeverk som gjør det enklere å utvikle og kjøre webapplikasjoner. I hovedsak er det et mellomlags serverprogram designet for å gi forretningslogikk for applikasjonsprogrammer.

Nettserveren er begrenset til kun HTTP-innhold, noe som betyr at den bruker HTT-protokollen til å lagre, behandle og levere innhold til klienter. Det er en kraftig datamaskin som gjør nettsider tilgjengelige over Internett, og kommunikasjon mellom klient og server skjer ved hjelp av HTTP. Applikasjonsserveren er ikke begrenset til å sende statisk HTML-innhold; Faktisk kommuniserer den forretningslogikk til klientapplikasjoner ved hjelp av flere protokoller.

Webserver og applikasjonsserverfunksjon

Jobben til en webserver er å akseptere og svare på forespørsler fra brukere som blir omdirigert av datamaskinens HTTP-klienter, som enten kan være fra en nettleser eller fra mobil applikasjon. Hovedformålet med en webserver er å gjøre statisk innhold tilgjengelig for brukere å se i nettlesere. Jobben til en applikasjonsserver er å være vert for og publisere applikasjoner og forretningslogiske prosesser ved hjelp av flere forskjellige protokoller. Det fungerer sammen med en webserver.

Multithreading

Nettserveren svarer på forespørsler som kommer fra flere tilkoblinger samtidig, men kan ikke behandle flere samtidige forespørsler parallelt. Ideen om å bruke tråder for å forbedre prosesseringshastigheten fungerer rett og slett ikke med webservere. På den annen side støtter applikasjonsservere multi-threading så vel som en rekke andre funksjoner som isolasjonsdeling, pooling, lastbalansering, clustering, etc.

Nettserver og applikasjonsserverkapasitet

Webserver er basert på internett- og intranettrelaterte programmer for å betjene e-post, nedlastingsforespørsler FTP-filer, og for å opprette og publisere nettsider for klienter som bruker HTTP-protokollen. Den kan brukes alene eller som en komponent i en applikasjonsserver. På den annen side kan applikasjonsservere gjøre alt som applikasjonsservere kan og mye mer. De er mer i stand til å lage dynamisk innhold for å betjene både web- og bedriftsapplikasjoner.

Webserver vs applikasjonsserver: sammenligningstabell

Sammendrag av webserver vs. Applikasjonsserver

Nettservere spiller en grunnleggende rolle i hvordan Internett fungerer, uten hvilke Internett slutter å eksistere. Enkelt sagt fungerer webservere som en gateway mellom brukeren og World Wide Web. Det er et system designet for å levere statisk innhold til sluttbrukere over Internett. Det er begrenset til å be om å betjene klienter kun via HTTP-protokollen. I motsetning til dette er applikasjonstjenere mer ressurskrevende, som gir mellomvaretjenester til klientapplikasjoner via ulike protokoller, inkludert HTTP. Det er en plattform designet for installasjon, drift og hosting av applikasjoner og tjenester for sluttbrukere. Selv om begge er nødvendige for at nettstedet skal fungere som det skal, er de svært forskjellige fra hverandre.


Topp