160 likes | 278 Views
WWW-palvelin. Apache HTTP Server. Yleistä. Siirtää HTTP-protokollaa käyttäen pyydetyt tiedostot Internetin välityksellä Portti 80 varattu HTTP-protokollalle Palvelin kuuntelee porttia Asiakasohjelma ottaa TCP yhteyden palvelimeen Asiakas lähettää HTTP-pyynnön Palvelin vastaa
E N D
WWW-palvelin Apache HTTP Server
Yleistä • Siirtää HTTP-protokollaa käyttäen pyydetyt tiedostot Internetin välityksellä • Portti 80 varattu HTTP-protokollalle • Palvelin kuuntelee porttia • Asiakasohjelma ottaa TCP yhteyden palvelimeen • Asiakas lähettää HTTP-pyynnön • Palvelin vastaa • HTTP-määrittely: RFC2616
Yleistä (jatkuu) • HTTP GET-pyyntö: maa2:~> telnet jumi.lut.fi 80 Trying 157.24.54.9... Connected to jumi.lut.fi. GET /~vanhoja/lupo05/ HTTP/1.1 Host: jumi.lut.fi Accept: text/html User-Agent: telnet
Yleistä (jatkuu) • HTTP vastaus: HTTP/1.1 200 OK Date: Thu, 03 Feb 2005 18:05:03 GMT Server: Apache/1.3.26 (Unix) Debian GNU/Linux PHP/4.1.2 X-Powered-By: PHP/4.1.2 Transfer-Encoding: chunked Content-Type: text/html; charset=iso-8859-1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ... </html>
Internet -> pyyntöjä paljon (ehkä) • Apache HTTP-palvelin pystyy hoitamaan samanaikaiset pyynnöt usealla eri tavalla • Multi-Prosessing Modules (MPM) • Optimointia eri käyttöjärjestelmille ja erilaisille vaatimuksille • Haluttu moduuli määritellään asennuksessa • Linux vakiomoduulina prefork • Pyyntöä palvelee oma lapsiprosessinsa • Ei säikeitä
Virtual hosts • Virtual hosting mahdollistaa useamman kuin yhden sivuston pitämisen samalla palvelimella • Nimiperustainen (Name-based) tai IP-perustainen (IP-based virtual hosting) • Nimiperustainen • Palvelimella yksi IP-osoite • Haluttu sivusto tunnistetaan HTTP-pyynnön host-kentästä • DNS -> eri DNS-nimien pitää vastata samaa IP-osoitetta
Virtual hosts (jatkuu) • IP-perustainen • Jokaiselle sivustolle oltava oma IP-osoite • Apache HTTP-palvelimella kaksi tapaa: • Jokaiselle host:lle oma httpd-demoni • Yksi demoni, joka palvelee jokaista host:a
Asennus • Vaiheet: • Paketin lataaminen ja purkaminen • Configure-skriptin ajaminen • Kääntäminen (make) ja asennus (make install) • Asetukset httpd.conf tiedostoon • Testaus ja viimeistely
Paketin lataaminen ja purkaminen lahiverkot6:~# lynx http://httpd.apache.org/download.cgi ... lahiverkot6:~# gzip -d httpd-2.0.53.tar.gz lahiverkot6:~# tar xvf httpd-2.0.53.tar
Configure-skripti • Ennen asennusta tehtävät määritykset • Asennuskansio • MPM • Moduulit • http://httpd.apache.org/docs-2.0/programs/configure.html lahiverkot6:~/httpd-2.0.53#: ./configure –-prefix=/usr/local/apache2 –-enable-mods-shared=most
Kääntäminen ja asentaminen lahiverkot6:~/httpd-2.0.53# make ... lahiverkot6:~/httpd-2.0.53# make install
Asetukset httpd.conf tiedostoon • Hakemistossa /usr/local/apache2/conf/ • Hyvin kommentoitu • Asetukset direktiivien avulla • http://httpd.apache.org/docs-2.0/mod/directives.html
httpd.conf tiedosto (jatkuu) • Tärkeimpiä direktiivejä • Listen, IP ja portti jota demoni kuuntelee • ServerName, palvelimen DNS-nimi • ServerAdmin, ylläpitäjän sähköposti • DocumentRoot, hakemisto jossa sivustot ovat • DirectoryIndex, tiedostot jotka ovat hakemistojen indeksitiedostoja • ErrorLog, virhelokin sijainti
Testaaminen ja viimeistely • apachectl-skripti hakemistossa usr/local/apache2/bin/ • käyttöliittymä httpd-demoniin • Käynnistäminen: apachectl start • Sammuttaminen: apachectl stop • Uudelleenkäynnistäminen: apachectl restart|graceful • Komentoriviparametrit httpd-demonille • http://httpd.apache.org/docs-2.0/programs/httpd.html
Testaaminen ja viimeistely • Käynnistämisen jälkeen ensimmäinen HTML-sivu saatavilla osoitteesta http://www.lahiverkot.pc.lut.fi/ • Käynnistyminen bootin yhteydessä: • Kopioi apachectl hakemistoon /etc/init.d/httpd • Aja komento update-rc.d httpd defaults
Ylläpito • Muutokset httpd.conf tiedostoon, demonin uudelleenkäynnistäminen • Moduulien lisääminen, poistaminen ja direktiivien määrittely • Lokit: • Virheloki, oletuksena (error_log) • Palvelupyynnöt, oletuksena (access_log) • Viittaajat, optiona (referer_log) • Asiakasohjelmat, optiona (agent_log)