IIS 8.0 võrdluses Apache ja nginx-ga
Autor
Marten Mattisen
Rühm A22
Sissejuhatus
Antud referaadis tuleb lühidalt juttu veebiserveri rakendustest IIS 8.0, Apache ning nginx. Samuti võrreldakse nimetatud veebiserverite tehnilisi erinevusi ja iseloomulikke jooni ning kokkuvõtteks annab autor aimu, millise veebiserveri võiks teatud olukordades valida.
IIS 8.0
IIS (Intenet Information Services) on Microsofti poolt loodud veebiserver(spetsiaalseks otstarbeks loodud tasulise litsentsiga), mis on olnud oluline osa Windows NT perekonnast alates Windows NT 4.0-st, kuigi mõne operatsioonisüsteemi puhul võib see puudu olla. IIS pole vaikimisi sisselülitatud, kuid seda saab lihtsalt läbi lisade nimekirja installeerida, seejärel on võimalik haldusrakendus (IIS Manager) MMC või administratiivtööriistade alt kätte saada. Võrreldes vanemate versioonidega pakub IIS versioon 8.0 (saadaval Windows Server 2012-st ning Windows 8-st) riistvara jõudluse efektiivsemat kasutust ning on lihtsustanud ka administreerimist läbi lisatud funktsioonide.
- Rakenduste automaatse käivitumise seadistamine serveri käivitumisel.
- "Splash page" näitamine kasutajale enne rakenduse laadimist leheküljel.
- Vaikimisi ASP.net 4.5 tugi.
- SSL sertifikaatide keskne haldus.
- Mitme tuuma optimaalsem kasutamine NUMA-l põhinevatel süsteemidel.
- Toetatud on WebSocket protokoll.
- Server Name Indication (SNI), mis võimaldab erinevate nimedega veebilehed koondada ühe IP alla.
- Dünaamiline IP aadresside blokeerimine üksikutele IP aadressidele või IP vahemikele, kes saadavad serverile suurt hulka päringuid.
- Administraator saab nüüd protsessori võimekust rakendustele eraldi määrata süsteemi jõudluse efektiivsemaks kasutuseks.
Lisalugemist IIS kohta pakuvad artiklid
- Internet Information Services - Vadim Vinogradin
- Internet Information Services 8.0 - Silver Viljaste
Apache HTTP server
Apache HTTP server(tavaliselt öeldakse lihtsalt "Apache") on veebiserver, mida hakati arendama 1995. aastal ning mis sai vaid aastaga maailma enimkasutatavaks veebiserveriks. Apache-st sai 2009. aastal esimene server, mis ületas 100 miljoni veebilehel kasutatavuse piiri ja on endiselt populaarseim veebiserver. Veebiserverit on arendanud avatud lähtekoodi propageeriv kogukond Apache Software Foundation, mis tagab erinevate moodulite suurte arvu, mis omakorda laiendab funktsionaalsust. Põhilised ja enimkasutatavad moodulid on loomulikult Apachega kaasas. Samuti on Apache saadaval kõikidel enimkasutatavatel operatsioonisüsteemidel ning on avaldatud Apache litsentsi all. Artiklis käsitletakse versiooni 2.4.
nginx
nginx(engine x) on kolmas maailma enimkasutatavatest veebiserveritest, mis on pikalt võidelnud kasutatavuse populaarsuselt IIS-ga ning millest suudeti 2013 aasta detsembri seisuga 0.1% võrra ka ette rebida. nginx, mida arendab NGINX, Inc. , esindab samuti avatud lähtekoodiga vabavaralasi ning on avaldatud BSD litsentsi veidi muudetud variandi all. Lisaks veebiserverile saab nginx-i kasutada ka reverse proxyna, aga ka mail proxyna. Nagu ka Apache, töötab nginx enamikel enamkasutavatel operatsioonisüsteemidel. Artiklis käsitletakse versiooni 1.4.4.
Tehniline võrdlus
Võimalused
Server | Turvalisus | Dünaamiline sisu | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Baasligipääsu autentimine | Räsil põhinev autentimine | SSL/TLS | Jagatud veebimajutuse teenus | CGI | FCGI | SCGI | WSGI | Java Servlets | SSI | ISAPI | SSJS | Töötab kasutaja ruumis või kerneli ruumis | Administreerimine konsoolist | IPv6 | |
Apache HTTP Server | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Ei | Jah | Jah | Jah | kasutaja | Jah | Jah |
Internet Information Services | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Ei | Jah | Jah | Jah | Jah | Kernel ja kasutaja | Jah | Jah |
nginx | Jah | Jah | Jah | Jah | Ei | Jah | Jah | Jah | Jah | Jah | Ei | Jah | kasutaja | Jah | Jah |
Toetatud operatsioonisüsteemid
Server | Windows | Linux | OS X | BSD | Solaris | eComStation | OpenVMS | AIX | IBM i | z/OS | HP-UX |
---|---|---|---|---|---|---|---|---|---|---|---|
Apache HTTP Server | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Jah | Jah |
Internet Information Services | Jah | Ei | Ei | Ei | Ei | Ei | Ei | Ei | Ei | Ei | Ei |
nginx | Jah | Jah | Jah | Jah | Jah | Ei | Ei | Jah | Ei | Ei | Jah |
IIS ning Apache jõudluse võrdlus
Nagu näha, siis Windowsi platvormil on IIS Apachest veidi kiirem, vaid piltidega seotud toimingutel esmasel laadimisel edastab Apache IIS-i. Kui eelnevalt on juba süsteemi keskkonnaks Windows Server, võiks kindlasti vaadata suuremahuliste (skriptide,PHP rohke) veebilehtede puhul IIS poole.
Milline veebiserver valida?
NB, alljärgnev tekst on väga pinnapealne ning tegelikult on veebiserveri rakenduse valiku langetamise selgitamiseks vaja põhjalikku analüüsi vajadustest ja võimalustest.
Lühidalt öeldes, kui leheküljel on palju dünaamilist sisu ning veebiserveri roll läheb Windows operatsioonisüsteemile, on IIS õige valik. Kuna see on nii tihedalt operatsioonisüsteemi seotud, on seda lihtsam paigaldada ning hallata. Kui aga kasutusel on muu operatsioonisüsteem, aga vaja on palju erinevaid võimalusi ning samuti palju dünaamilist sisu, võiks vaadata Apache poole. Nii IIS kui Apache puhul on muidugi probleemiks see, et nad on rasked ja kasutavad ohtralt mälu, siinkohal tulebki appi nginx, mis põhineb sündmustel. See tähendab, et iga päringu kohta ei tekitata uut protsessi, mis tähendab omakorda efektiivsemat mälukasutust. Lisaks muudab see võimalikuks staatilise sisu edastamise väheste ressursside abil, mistõttu kasutavad seda ka suured filmide striimimise leheküljed (Netflix,Hulu). Staatilise sisu edastamisel samal testiplatvormil suudab nginx käsitleda Apachest maksimaalselt ligi 40% rohkem päringuid sekundis, vaid keerulisemate skriptide kasutamise korral suudab Apache päringutele veidi kiiremini vastata. Loomulikult on erinevaid veebiservereid rohkem, kui siin artiklis käsitletud ning seetõttu võiks reaalse rakenduse puhul vaadata kõikvõimalikud muud variandid ka läbi.
Kasutatud materjalid
- http://nginx.org/en/
- http://httpd.apache.org/ABOUT_APACHE.html
- http://www.apache.org/foundation/faq.html#name
- http://w3techs.com/technologies/overview/web_server/all
- http://www.entrepreneur.com/article/217524
- http://www.icucom.net/content/drupal-windows-making-case-iis-over-apache
- http://www.iis.net/learn/get-started/introduction-to-iis/iis-web-server-overview
- http://www.theorganicagency.com/apache-vs-nginx-performance-comparison/#home
- http://raspberrywebserver.com/raspberrypicluster/comparing-the-performance-of-nginx-and-apache-web-servers.html