WWW-PALVELIN 1 (17) Olavi Korhonen, Timo Ruohomaa, Atte Pakkanen 22.10.2007 WWW-PALVELIMEN KONFIGUROINTI. Sivunumerot 1 WWW-PALVELIMEN TOIMINTA



Samankaltaiset tiedostot
KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

Tomi Pahula TI09OHJ. Apache WWW-palvelin

1.1 Internetistä lyhyesti. Mikä Internet on? 1.2 Maailmanlaajuinen verkko

Tikon Ostolaskujenkäsittely versio SP1

Taustaa. CGI-ohjelmointi

Julkaiseminen verkossa

Verkkosivut perinteisesti. Tanja Välisalo

WWW-PALVELUN KÄYTTÖÖNOTTO LOUNEA OY

Windows Server 2012 asentaminen ja käyttöönotto, Serverin pyörittämisen takia tarvitaan

URL-osoitteiden suunnittelu

Järjestelmäarkkitehtuuri (TK081702)

Tiedostojen siirto ja FTP - 1

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

MOBISITE-TYÖKALUN SISÄLTÄMÄT TOIMINNOT

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Simulaattorin asennus- ja käyttöohje

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Unix-perusteet. Tulostaminen

Paavo Räisänen. WampServer palvelimen asennus ja käyttö Eclipsen kanssa, sekä ensimmäinen FTP yhteys.

Historiaa. Unix kirjoitettiin kokonaan uudestaan C-kielellä Unix jakautui myöhemmin System V ja BSDnimisiin. Kuutti, Rantala: Linux

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

L models. Käyttöohje. Ryhmä Rajoitteiset

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

Korkeakoulujen prosessipalvelin: mallintajan palvelinohje Versio 0.2

Mikä on WordPress? itse ylläpidettävä (self-hosted) WordPress.com: ilmainen 3. osapuolen ylläpitämä pilvipalvelu (Cloud-hosted)

Visma Liikkuvan työn ratkaisut Päivitysohje. Pääkäyttäjän opas

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

TIEDEJUTTUKURSSI FM VILLE SALMINEN

VIENET JULKAISUJÄRJESTELMÄLLÄ TOTEUTETTUJEN INTERNET-SIVUJEN YLLÄPITO-OHJE

1 www-sivujen teko opetuksessa

Suvi Junes Tietohallinto / Opetusteknologiapalvelut 2012

FuturaPlan. Järjestelmävaatimukset

Coolselector Asennusohje

Yleinen ohjeistus Windows tehtävään

Käytin tehtävän tekemiseen Xubuntu käyttöjärjestelmää aikaisemmin tekemältäni LiveUSB-tikulta.

Yliopisto- ja AMK-kirjastokonsortioiden tietokantapalvelimet

H9 Julkaiseminen webissä

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

ASENNUSOHJEET INTERNET-ASENNUS. Navita Yritysmalli. YHTEYSTIEDOT Visma Solutions Oy Mannerheiminkatu LAPPEENRANTA Puh.

Yhteydensaantiongelmien ja muiden ongelmien ratkaisuita

XEROXIN TURVATIEDOTE XRX Http-palvelimen haavoittuvuus ESS:ssä/verkko-ohjaimessa saattaa mahdollistaa järjestelmän luvattoman käytön.

Visma Liikkuvan työn ratkaisut

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Mikä on internet, miten se toimii? Mauri Heinonen

Tikon Ostolaskujenkäsittely versio 6.2.0

Joomla pikaopas. Yksinkertainen opas, jossa neuvotaan esimerkkisivuston teko Joomla julkaisujärjestelmällä vaihe vaiheelta.

Visma Avendon asennusohje

Uutta Remote Support Platform 3.1 -versiossa

Kytkentäopas. Tuetut käyttöjärjestelmät. Tulostimen asentaminen. Kytkentäopas

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka

SeaMonkey pikaopas - 1

Sisältö IT Linux 2001:n uudet ominaisuudet IT Linux 2001:n yhteensopivuus Red Hat 7.0:n kanssa Asennuksen valmistelu

GroupWise Calendar Publishing Host User

UCOT-Sovellusprojekti. Asennusohje

NAVITA BUDJETTIJÄRJESTELMÄN ENSIASENNUS PALVELIMELLE

Internetin hyödyt ja vaarat. Miten nettiä käytetään tehokkaasti hyväksi?

T&M Autori Versio Series 60 -puhelimiin

1. päivä ip Windows 2003 Server ja vista (toteutus)

erasmartcardkortinlukijaohjelmiston

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

,QWHUQHWVHODLPHQNl\WWlPLQHQ±,QWHUQHW([SORUHU

Kieliversiointityökalu Java-ohjelmistoon. Ohje

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

Järjestelmänvalvontaopas

4. Lausekielinen ohjelmointi 4.1

Linux - käyttöoikeudet

SSH Secure Shell & SSH File Transfer

Written by Administrator Saturday, 28 August :51 - Last Updated Tuesday, 22 February :45

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Valppaan asennus- ja käyttöohje

Linux palomuurina (iptables) sekä squid-proxy

Google-dokumentit. Opetusteknologiakeskus Mediamylly

Julkaiseminen verkossa, esitysgrafiikkaa (laitteistosta, tietotekniikka ja tulevaisuus) H9T1: Tiedostojen vienti internetiin

Yleinen ohjeistus Windows tehtävään.

1 Tivax siirto uuteen koneeseen

Internet ja tietoverkot 2015 Harjoitus 7: Kertaus

JOHDANTO... 5 PÄÄKONFIGURAATIOTIEDOSTO KIELET KÄYNNISTÄMINEN JOHDANTO... 6

Tiedonsiirto- ja rajapintastandardit

WEIKKA. Asennus opas. Hannu-Matti Lemettinen HML Productions

Maventa Connector Käyttöohje

SALITE.fi -Verkon pääkäyttäjän ohje

Palomuurit. Palomuuri. Teoriaa. Pakettitason palomuuri. Sovellustason palomuuri

Ohjeita tietokoneverkon käyttöön Latokartano-säätiön ja Metsäylioppilaiden asuntosäätiön asuntoloissa

ANVIA ONLINE BACKUP ASENNUSOPAS 1(7) ANVIA ONLINE BACKUP ASENNUSOPAS 1.0

Tietokanta.java Luokka tarjoaa välineet tietokannan lukemiseen. Haetuista tiedoista muodostetaan kurssi- ja opetus-olioita.

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

Pika-aloitusopas. Haku Voit etsiä sivustoja, henkilöitä tai tiedostoja. Sivuston tai uutisviestin luominen

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

Visma Nova. Visma Nova ASP käyttö ja ohjeet

Opas Logitech Harmony 525 asennusohjelmistoon

Purot.net Wiki. Tutkielma. Paavo Räisänen. Centria Ammattikorkeakoulu

Metropolia Ammattikorkeakoulu

ZENworks Application Virtualization 11

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

Transkriptio:

Tietoliikenne WWW-PALVELIN 1 (17) Konfigurointi 22.10.2007 WWW-PALVELIMEN KONFIGUROINTI Sivunumerot 1 WWW-PALVELIMEN TOIMINTA...1 1.1 YLEISPERIAATE...2 1.2 HTTP-PROTOKOLLA...3 1.2.1 HTTP-pyyntö...3 1.2.2 HTTP-vastaus...3 2 APACHE-PALVELIMEN HISTORIAA...4 2.1 APACHE SOFTWARE FOUNDATION...4 2.2 APACHEN SUOSIO...5 3 APACHE-PALVELIN...6 3.1 AJOYMPÄRISTÖT...6 3.2 RAKENNE...6 3.2.1 Ydin ja moduulit...6 3.2.2 Konfigurointitiedostot...7 4 APACHEN KONFIGUROIMINEN...8 4.1 APACHEN KANSIOT JA TIEDOSTOT...8 4.2 TIEDOSTOT HTTPD.CONF JA.HTACCESS...9 4.2.1 httpd.conf...9 4.2.2.htaccess...10 4.3 APACHEN YLEISIÄ OMINAISUUKSIA...10 4.4 ALIAS JA SEN MÄÄRITTÄMINEN...12 4.5 REDIRECT ELI UUDELLEENOHJAUS...13 4.6 VIRTUAL HOSTS ELI USEAMPIA SIVUSTOJA SAMALLA PALVELIMELLA...13 4.6.1 Konfigurointi...14 4.6.2 Virtual Hosts konfiguraation tarkistaminen...15 5 KOTISIVUVINKKEJÄ...16 1 WWW-PALVELIMEN TOIMINTA Tämän laboratoriotyön tavoitteena on perehtyä Apache WWW -palvelimen konfigurointiin ja toimintaan. Tehtävä keskittyy esittelemään Novell OES

HAAGA-HELIA WWW-palvelin 2 -ympäristölle keskeisiä Apachen ominaisuuksia ja asetuksia. Lisäksi tutustutaan siihen, mitä palveluja Apache tarjoaa ja miten Apachea konfiguroidaan. 1.1 Yleisperiaate WWW-järjestelmät toimivat asiakas-palvelin -periaatteella (client-server). Asiakasohjelma lähettää palvelupyynnön palvelinohjelmalle. Palvelin suorittaa pyydetyn palvelun ja lähettää vastauksen asiakkaalle. WWW-järjestelmien tapauksessa palvelin on www- tai web-palvelin. Asiakasohjelma on hyvin usein selain. Seuraava kuva esittää palvelimen toimintaa. Kuva 1 Käyttäjä kirjoittaa verkkoresurssin URL-osoitteen selaimen osoitekenttään tai klikkaa sivulla olevaa linkkiä. Verkkoresurssi voi olla HTML-tiedosto, ASP- tai JSP-tiedosto, cgi-ohjelma, Java-servletti, hakukone, jne. Selaimesta lähtee palvelimelle HTTP-protokollan (Hypertext Transfer Protocol) mukainen pyyntö. Palvelin lähettää selaimelle vastauksen käyttäen HTTP-protokollaa. Vastaus on yleensä jonkinlainen HTML-tiedosto. Selaimen HTML-parseri tulkitsee saamansa HTML-tiedoston ja näyttää sen selaimen näyttöalueessa. Asiakkaan ja WWW-palvelimen välinen tietoliikenne tapahtuu HTTP-protokollaa käyttäen. Siksi WWW-palvelimista käytetään myös nimitystä HTTP-palvelin. Verkkoresurssin URL -osoitteen yleinen muoto on seuraava:

HAAGA-HELIA WWW-palvelin 3 Kuva 2 URL-osoitteen tiedosta vain koneen osoite on pakollinen. Muilla osilla on jokin oletusarvo. Mahdollinen tiedoston oletusarvo on indeksitiedosto. 1.2 HTTP-protokolla Web-palvelimen ja asiakkaan (selaimen) välinen kommunikointi tapahtuu HTTPprotokollan avulla. HTTP on pyyntö/vastaus-periaatteella (request/response) toimiva protokolla. HTTP kertoo, minkälainen on asiakkaan lähettämä palvelupyyntö ja minkälainen on palvelimen lähettämä vastaus. HTTP:n versiot ovat: HTTP/0.9, HTTP/1.0 ja HTTP/1.1. 1.2.1 HTTP-pyyntö HTTP-pyyntö koostuu metodista, URI:sta (Uniform Resource Identifier) ja HTTP-protokollan versiotiedosta. Lisäksi pyynnössä voi olla erilaista otsikkotietoa. Tavallisesti HTTP-pyynnön metodit ovat joko GET tai POST. Metodi voi olla myös jokin seuraavista: HEAD, OPTIONS, TRACE, DELETE, PUT ja CONNECT. Esimerkki HTTP-pyynnöstä GET: Esimerkki HTTP-pyynnöstä POST: GET /index.html HTTP/1.1 POST /cgi-bin/kasittely.cgi HTTP/1.1 Content-Length: 10 param=arvo 1.2.2 HTTP-vastaus HTTP-vastaus koostuu protokollan versionumerosta, tilakoodista, päivämäärästä, palvelimen tiedoista, vastauksen otsikkotiedoista ja itse vastauksesta:

HAAGA-HELIA WWW-palvelin 4 HTTP/1.1 200 OK Date: Wed, 2 Nov 2005 11:55:23 Server: Apache/1.3.12 (Win32) Connection: close Content-Type: text/html <HTML>.. </HTML> 2 APACHE-PALVELIMEN HISTORIAA Apache HTTP Server on avoimeen lähdekoodiin perustuva HTTP-palvelinohjelma. Se on saatavilla Unixille (BSD:t ja Linuxit), Windowsille sekä useille muille käyttöjärjestelmille. Apache on maailman käytetyin web-palvelin. Netcraft-niminen konsultointiyritys tekee tutkimuksia web-palvelinten käytöstä. Uusimpien tutkimustulosten mukaan noin 70 % maailman web-palvelimista käyttää Apache-ohjelmistoa. Microsoftin IIS (Internet Information Server) -palvelinta käyttää noin 20 % web-palvelimista (Netcraft Web Server Survey). Apache on ilmainen ohjelmisto. Kuka tahansa voi imuroida Apache-palvelimen ilmaiseksi ja asentaa sen palvelinkoneeseensa. Myös Apachen C-kielellä tehty lähdekoodi on vapaasti imuroitavissa. Tämä tarkoittaa sitä, että Apachea voidaan "räätälöidä" ja muutella kulloiseenkin tarpeeseen sopivaksi, siihen voidaan lisätä uusia ja poistaa tarpeettomia moduuleita. Jos havaitaan virheitä ohjelmakoodissa, ne voidaan korjata. Kuka tahansa havaitsee Apachen lähdekoodissa virheen, voi ilmoittaa siitä Apachen kehitystiimille. 2.1 Apache Software Foundation Web-kehityksen alkuaikoina National Center for Super Computing Applications, University of Illinois (NCSA) kehitti HTTP-palvelimen, josta tuli nopeasti maailman käytetyin web-palvelin. Vuonna 1994 NCSA-palvelimen pääkehittäjä, Rob McCool, lähti pois NCSA:sta ja palvelimen kehitys pysähtyi. NCSApalvelimen käyttäjät alkoivat pitää toisiinsa yhteyttä ja lähettää tarvittavia koodin

HAAGA-HELIA WWW-palvelin 5 korjauksia ja parannuksia toisillensa. Pian käyttäjät huomasivat, että tarvitaan jokin foorumi hallinnoimaan ja koordinoimaan palvelimen tarvitsemia korjauksia ja kehitystä yleensä. Näin syntyi Apache Group. Ryhmä käytti pohjana NCSApalvelimen koodia ja kehitti uuden web-palvelimen ja antoi sille nimeksi Apache. Apache-palvelimen ensimmäinen versio (0.6.2) julkistettiin huhtikuussa 1995. Version 1.0 julkistus oli joulukuussa 1995. Apache Group -ryhmä oli voittoa tavoittelematon yhdistys ja se operoi kokonaan Internetin kautta. Yhdistyksen toiminta laajeni ja kesäkuussa 1999 sen toimintaa jatkamaan perustettiin Apache Software Foundation -yhdistys (ASF). Sen web-osoite on http://www.apache.org. ASF-yhdistyksen toimintaa valvoo yhdistyksen hallitus, jonka valitsee ASF-jäsenistö vuosittain yhtymän johtosäännön mukaisesti. Hallituksen tehtävänä on nimittää virkailijat hoitamaan yhdistyksen jokapäiväisiä asioita ja valvomaan ASF:n projekteja. Projekteja johtaa itsevalintainen teknisistä asiantuntijoista koostuva tiimi, jonka jäsenet ovat aktiivisia projektin tukijoita ja avustajia. 2.2 Apachen suosio Mihin Apachen suosio sitten perustuu? Ensinnäkin Apache on nopea, varma ja stabiili palvelinohjelma. Verrattuna muihin keskeisiin palvelinohjelmiin Apachen historia on erittäin pitkä. Sen edeltäjä NCSA:n HTTPd on eräs vanhimmista palvelimista ja Apachestakin on ollut tarjolla käyttökelpoisia versioita vuodesta 1995 alkaen. Toiseksi Apachen lähdekoodi on avointa ja se on kirjoitettu C:lla. Tämä tarkoittaa sitä, että ohjelma on täysin muokattavissa omien tarpeiden mukaiseksi. Apache on saatavilla useimmille alustoille (Windows, Unix, Linux, OS/2, Amiga, jne.), ja jos sitä ei ole vielä käännetty, niin kehittäjä voi siirtää sen itse haluamalleen alustalle. Apachea käytetään juuri avoimen lähdekoodin ansiosta perustana useissa kaupallisissa tai ilmaisissa palvelinratkaisuissa, kuten esimerkiksi C2Netin Strongholdissa ja Red Hatin Secure Web Serverissä. Kolmanneksi Apache on ilmainen, joten se pitää vain "imuroida". Jos Apachelle halutaan myöhemmin tukea, se voidaan ostaa. Verkossa oleva ilmainen onlinedokumentaatio kuitenkin riittää pitkälti vastaamaan perustarpeisiin.

HAAGA-HELIA WWW-palvelin 6 3 APACHE-PALVELIN 3.1 Ajoympäristöt Alkuaan Apache-palvelin kehitettiin UNIX-käyttöjärjestelmässä ajettavaksi. Sen yleisimmät ajoympäristöt ovatkin Linux-, Solaris- ja FreeBSD-käyttöjärjestelmät. Apache-palvelimesta on tehty myös NT Server-version jälkeisissäwindowsympäristöissä toimivat versiot. Normaalisti Apache toimii Unix-käyttöjärjestelmässä taustaprosessina, joka tarjoaa palveluja ja jolla ei ole varsinaista käyttöliittymää. Tällaisesta prosessista käytetään Unix-käyttöjärjestelmässä nimeä demoni (daemon). Windowskäyttöjärjestelmissä taustaprosessista käytetään nimitystä palvelu (service). Apachen toimintaperiaate on erilainen Unix- ja Windows-käyttöjärjestelmissä. Unix-käyttöjärjestelmässä Apache luo käynnistyksen yhteydessä prosesseja, jotka käsittelevät asiakkailta tulevia palvelupyyntöjä. Windowsissa palvelupyyntöjen käsittely perustuu säikeisiin (thread). Säikeiden käyttö on tehokkaampaa ja vähemmän tietokoneen resursseja kuluttavaa kuin prosessien käyttö. Uusimmassa Apache versiossa 2.0 palvelut toteutetaan myös Unix-ympäristössä säikeiden avulla. 3.2 Rakenne Apache voidaan imuroida Apache Software Foundation -yhdistyksen sivuilta (www.apache.org) tai joltakin sen kansainväliseltä peilisivustolta. Apache julkistetaan sekä binääri- että lähdekoodiversiona. Binääriversio voidaan asentaa sellaisenaan ja sitä on saatavana useille käyttöjärjestelmille. Kulloiseenkin tarkoitukseen sopivaksi muunneltava ja editoitava lähdekoodiversio pitää ennen asennusta kääntää ja kehittää asentamiskelpoiseksi ohjelmaksi. 3.2.1 Ydin ja moduulit Apache-palvelin koostuu ytimestä ja moduuleista, joista voidaan koota halutut ominaisuudet käsittävä palvelin. Moduulit voidaan kiinnittää palvelimeen pysyvästi, tai ne voidaan ladata ajon aikana dynaamisesti. Virallinen Apache sisältää ytimen ja tietyt standardimoduulit.

HAAGA-HELIA WWW-palvelin 7 3.2.2 Konfigurointitiedostot Apache-palvelimella on konfigurointitiedostoja, jotka ilmoittavat palvelinohjelmistolle, millaisessa ympäristössä se toimii ja miten sen tulee toimia. Konfigurointitiedostot ovat tekstitiedostoja, joita voidaan käsitellä manuaalisesti tekstieditorilla. Nykyään on olemassa myös graafisia editoreita, joilla voidaan käsitellä konfigurointitiedostoja. Apache-palvelin asentuu OES:n asennuksen yhteydessä. Silloin perustetaan hakemisto /etc/apache2 ja sinne sijoitetaan.conf -nimiset tiedostot. Siellä on meille muutama tärkeä konfigurointitiedosto: - httpd.conf tärkein konfigurointitiedosto - default-server.conf oletuspalvelimen konfigurointitiedot, muttei virtuaalipalvelinten - listen.conf kuunneltavat IP-osoitteet ja portit - server-tuning.conf KeepAlive-parametrien määrittelytiedosto - errors.conf virheraportoinnin konfigurointitiedot Nämä tiedostot sisältävät tärkeimmät HTTP-palvelimen asetustiedot. Seuraavassa taulukossa on kuvattu muutama kiinnostava tieto: ServerRoot Listen ServerAdmin ServerName Palvelimen juurihakemisto. Esim. /etc/apache2. Määrittää palvelimen kuunteleman osoite:portti- tai pelkän protokollaporttinumeron. Tavallisesti 80. Palvelimen hallinnoijan www-osoite, jonne palvelin lähettää virheilmoituksia. Esim. webmaster@yritys.fi. Palvelimen DNS-nimi. Voi olla myös palvelimen IP-osoite. Esim. www.yritys.fi. DocumentRoot DirectoryIndex Dokumenttien juurihakemisto. Hakemistopolku, jossa htmldokumentit ovat. Esim /srv/www/htdocs. Indeksitiedoston nimi. Oletusarvoisesti indeksitiedosto palautetaan, jos URL-kutsu on pelkkä hakemiston nimi. Esim. kutsu www.tielab2.helia.fi/~pakat palauttaa DirectoryIndexillä määritellyn kotihakemistotiedoston.

HAAGA-HELIA WWW-palvelin 8 ErrorLog Virhelokin nimi ja sijainti. Esim. var/log/apache2/error_log. Taulukko 1 4 APACHEN KONFIGUROIMINEN 4.1 Apachen kansiot ja tiedostot Apachea pidetään turvallisena palvelimena, mutta se ei auta inhimillisiä asennusvirheitä vastaan. Yleisesti voidaan sanoa, että palvelimen tietoturva on aina yhtä hyvä kuin sen ylläpito, riippumatta käytössä olevasta palvelimesta. Apachen keskeisin konfiguraatiotiedosto on httpd.conf, joka sijaitsee kansiossa /etc/apache2. Apachen versiosta 1.3.4 lähtien kaikki palvelinta koskevat asetukset on määritelty tässä tiedostossa. Seuraavassa taulukossa on kuvattu eri hakemistojen sisältöä. OES:n hakemisto Kuvaus srv/www/cgi-bin Kansio, johon oletusarvoisesti tallennetaan CGI -ohjelmat. etc/apache2 Kansio, johon oletusarvoisesti tallennetaan konfiguraatiotiedostot. var/log/apache2 Kansio, johon oletusarvoisesti tallennetaan käyttäjälle näytettävät HTML-muotoiset virheilmoitukset. srv/www/htdocs Kansio, johon oletusarvoisesti tallennetaan julkaistavat HTML-dokumentit. Kansio, johon on oletusarvoisesti tallennettu mm. usr/share/apache2/icons dokumentaation käyttämät kuvakkeet. var/log/apache2 Kansio, johon oletusarvoisesti tallennetaan erilaiset lokitiedostot. usr/share/doc/manual Kansio, josta löytyy SLES Installation and Administration. Sieltä luku 22: Apache Web Server. Taulukko 2

HAAGA-HELIA WWW-palvelin 9 4.2 Tiedostot httpd.conf ja.htaccess Tiedostoja httpd.conf ja.htaccess voi hyvällä syyllä sanoa Apachen toiminnan sydämeksi. Tiedosto httpd.conf määrittelee kaikki Apache-palvelimen sekä yksittäisen sovelluksen toimintaan liittyvät asetukset. Tiedosto.htaccess tarjoaa saman palvelun kansiotasolla. Molemmat ovat ASCII -muotoisia tekstitiedostoja, joten ne voidaan avata muokattavaksi jollain tekstieditorilla. 4.2.1 httpd.conf Apachea pidetään helposti konfiguroitavana palvelimena. Tämä johtunee siitä, että.conf -tiedostojen vajaasta tuhannesta rivistä yli puolet on kommentin luonteisia ohjeita ominaisuuksien oikeista asetuksista. Kommentit tunnistaa UNIX-maailmasta tutusta risuaita-notaatiosta (#). Tällöin jokainen risuaidalla aloitettu rivi tulkitaan kommentiksi. Luonnollisesti omien kommenttien lisääminen tapahtuu samaan tyyliin: # Tämä rivi sisältää kommentin. Myöskään rivinvaihdoilla tai ominaisuuksien sijainnilla ei paria ominaisuutta lukuun ottamatta ole erityistä merkitystä. Tämä mahdollistaa sen, että voidaan muokata tiedostosta sellainen kuin itse halutaan. Kommenttimerkintöjen lisäksi tiedosto sisältää lohkoja ja ominaisuuksia, joilla säädellään palvelimen toimintaa. Ominaisuudet merkitään lähes poikkeuksetta syntaksilla: ominaisuus arvo1 arvo2 arvon Lohkoja käytetään ryhmittelyn apuvälineenä, kun halutaan sitoa useampia ominaisuuksia koskemaan tiettyä asiaa tai osiota. Yleisimpiä lohkojen käyttökohteita ovat kansion oikeudet ja virtuaalipalvelut. Lohkojen syntaksi on seuraava: <lohko> ominaisuus arvo1 arvo2 arvon ominaisuus arvo1 arvo2 arvon </lohko> Tiedostoon tehdyt muutokset eivät astu voimaan, ennen kuin palvelin käynnistetään uudestaan. Mikäli jokin asetus on virheellinen, ei Apache suostu

HAAGA-HELIA WWW-palvelin 10 käynnistymään kunnolla. Tätä varten on järkevää pitää aina tallessa edellisen konfiguraatiotiedoston varmuuskopio sekä seurata virheiden jäljityksessä tiedostoa error_log. Tiedosto httpd.conf koostuu kolmesta keskeisestä osasta (directives): - Global Environment eli yleiset ominaisuudet - Main Server Configuration eli palvelimen emoprosessin ominaisuudet - Virtual Hosts eli virtuaalipalvelimet. 4.2.2.htaccess Viitattaessa html-sivulle järjestelmä tarkistaa, löytyykö sieltä tiedosto.htaccess. Jos löytyy, se suoritetaan. Kotisivulla tiedostoa käytetään viittaajan valtuuksien tarkistamiseen. Tyypilliset.htaccess-direktiivit ovat esimerkiksi: AuthName Private Use AuthType Basic AuthUserFile /home/ user /.HTpasswd <Limit GET> Require user XYZ </Limit> AuthName antaa nimen hakemistoon kohdistuvalle autentikointimenettelylle. AuthType määrää sen tyypin: basic tai digest. Basic-menetelmä on ollut HTTP:ssä mukana aina versiosta 1.0 lähtien. Siksi suurin osa selaimista osaa toteuttaa sen. Digest-menetelmän etuna on, että se ei koskaan lähetä salasanoja selkokielisinä linjoja pitkin, mutta vain uusimmat selainversiot osaavat toteuttaa digest-autentikoinnin. AuthUserFile nimeää tiedoston, josta löytyvät sallitut käyttäjätunnukset salasanoineen. XYZ on yksi.htpasswd:n sisältämä käyttäjä. Tiedosto luodaan ja sitä ylläpidetään htpasswd2-käskyllä. 4.3 Apachen yleisiä ominaisuuksia Tässä osiossa määriteltävät asetukset vaikuttavat Apachen yleiseen toimintaan, kuten tiedostojen sijaintiin ja tallennuspaikkoihin sekä yhteyksien käsittelytapoihin. Ensimmäinen määriteltävä yleisistä asetuksista on palvelimen

HAAGA-HELIA WWW-palvelin 11 juurihakemiston fyysinen sijainti. Tämä määrittely kertoo, mistä löytyvät palvelimen konfiguraatiotiedostot. Miten juurihakemisto määritellään konfiguraatiotiedostossa? Mikäli käytössäsi on NTFS -pohjainen järjestelmä, on enemmän kuin suositeltavaa määritellä ko. hakemistolle erilaisia oikeuksia eri käyttäjäryhmille. Ominaisuuden TimeOut avulla määritellään kuinka kauan palvelin odottaa tulevia pyyntöjä avatulta yhteydeltä. Mikä on palvelimesi TimeOut-oletusarvo: Tärkeä tekijä www-sivuston kannalta on palvelun nopeus ja sen resurssien jakaminen tasaisesti kävijöiden kesken. Yleisimpiä tapoja tähän on ns. kestävät yhteydet (ts. enemmän kuin yksi pyyntö yhteyttä kohden). Apachen ominaisuudet KeepAlive, MaxKeepAliveRequests ja KeepAliveTimeout, mahdollistavat kestävien yhteyksien muodostamisen ja säätelemisen. Etenkin paljon kuvia sisältävissä verkkopalveluissa tämä ominaisuus voi parantaa vasteaikoja jopa 50 %. Kestävät yhteydet asetetaan määrittelemällä: KeepAlive On Asetus MaxKeepAliveRequests määrittelee suurimman sallittavan pyyntöjen määrän yhteydellä. Mikäli ominaisuuden arvoksi annetaan nolla, ei yhteyksien määrää rajoiteta. On kuitenkin suositeltavaa asettaa jonkinasteinen katto tälle asetukselle. Muuten on mahdollista, että yksittäiset käyttäjät voivat jumiuttaa palvelimen suorituskyvyn. Mikä on palvelimesi oletusmäärittely sallittujen yhteyskohtaisten pyyntöjen määräksi?

HAAGA-HELIA WWW-palvelin 12 KeepAliveTimeOut määrittelee ajan sekunteina, minkä sisällä tapahtuvat pyynnöt lasketaan samaan yhteyteen kuuluviksi: KeepAliveTimeout 15 Listen-asetuksella määritellään, mitä porttia Apachen HTTP-palvelu kuuntelee. Oletusarvona on normaali HTTP-liikenteen portti eli 80: Listen 80 Asetuksella voidaan myös määrittää tietty IP-osoite, portti tai molemmat. Miten märittelet palvelimesi kuuntelemaan omaa IP-osoitettasi ja porttia 8080? 4.4 Alias ja sen määrittäminen Haluttaessa julkaista dokumentteja muualla kuin DocumentRoot-hakemistossa, voidaan se toteuttaa käyttämällä alias-määrittelyä. Määrittelyllä viitataan hakemiston sijaintiin jossakin muualla, kuin DocumentRoot-hakemistossa. Apachella on kaksi direktiiviä sen toteuttamiseksi: Alias ja AliasMatch. Molemmilla voidaan määrittää URL-prefix, jolla viitataan tiettyyn hakemistoon DocumentRoot-määrittelyn ulkopuolella. Esimerkiksi: Alias /alias1 /polku Esimerkissä ensimmäinen argumentti on URI-prefix, jolla viitataan määriteltyyn polkuun. Tätä prefixiä käytetään, kun selaimella haetaan hakemistoa tai hakemistossa olevaa dokumenttia. AliasMatch toimii samantyyppisesti kuin alias-määrittely. Käyttämällä AliasMatch-määrittelyä voidaan luoda useita aliaksia samalla komennolla. Esimerkiksi, jos levyllä on useita hakemistoja samantyyppisesti nimettynä, niin voidaan luoda web-sivusto, joka käyttää niitä. Olkoon hakemistosyntaksi

HAAGA-HELIA WWW-palvelin 13 vaikkapa srv/www/kuvat/loma_(loppuosa eroaa). Käyttämällä hyväksi tätä tietoa on mahdollista luoda joukko aliaksia yhdellä komennolla: AliasMatch /lomat_(.*) srv/www/kuvat/loma_$1 Kun joku hakee sivustoasi ja kirjoitaa URLiin /lomat_kiina, hän saa automaattisesti aliaksen, joka viittaa hakemistoon srv/www/kuvat/loma_kiina. 4.5 Redirect eli uudelleenohjaus Jos tiedostot siirretään uuteen paikkaan vaikkapa alkuperäisen sivuston poiston tai uudelleenjärjestelyn takia, kannattaa käyttää uudelleenohjausta (Redirect). Nämä direktiivit suoritetaan ennen Alias- tai ScriptAlias-directiivejä riippumatta siitä, missä järjestyksessä ne ovat konfiguraatiotiedostossa. Seuraavassa on esimerkki yksinkertaisesta direktiivistä, jolla määritellään siirretty sivusto: Redirect [status_code] requested_url new_url Tilakoodi (staus_code) on valinnainen argumentti, jolla määritetään asiakkaalle palautettava tilatieto ja jolla kuvataan sivuston tilaa: - permanent, sivut on siirretty pysyvästi selaimen tulisi tunnistaa koodi ja voida muuttaa kaikki bookmarkit, jotka osoittavat kyseiseen URLiin ja seuraavat kyselyt menevät suoraan uuteen URLiin - temp, sivut on siirretty tilapäisesti asiakkaan ei tulisi muuttaa URLia - seeother, sivut on korvattu kuten permanent - gone, pyydettyä resurssia ei ole enää olemassa. Esimerkki: Redirect temp /vanha-url http://uusi/url 4.6 Virtual Hosts eli useampia sivustoja samalla palvelimella

HAAGA-HELIA WWW-palvelin 14 Useampi sivusto voidaan asettaa samalle palvelimelle, kun niille voidaan määritellä yksilöllinen tunniste. Tunnisteena käytetään nimeä tai IP-osoitetta. Erona näillä on, kuinka palvelin päättelee, mitä sivustoa palvelimelle tuleva pyyntö koskee. IP-Based Virtual Hosts Palvelimelle voidaan määritellä useampi IP-osoite ja konfiguroida palvelin kutakin osoitetta kohti kuuntelemaan sitä osoitetta. IP-osoitteet määritetään yksi osoite verkkokorttia kohti tai useampi osoite samalle verkkokortille. Käytettäessä useampaa osoitetta samalle verkkokortille kannattaa pohtia myös kaistanleveyden kokonaistarvetta. Name-Based Virtual Hosts Tällä menetelmällä voidaan toteuttaa useita virtuaalipalvelimia samassa IPosoitteessa ja samalla porttinumerolla. Menetelmä käyttää ns. HostHeadereita. Palvelin päättelee asiakkaan lähettämästä pyynnön otsikkotiedoista, mille virtuaali-isännälle pyyntö ohjautuu. Käytettävät nimet tulee olla myös nimipalvelussa ja niitä voidaan käyttää HTTP/1.1-protokollan kanssa. Useimmat selaimet osaavat jo lähettää HostHeaderin kaikissa pyynnöissään. 4.6.1 Konfigurointi Ennen virtuaali-isännän konfigurointia on määriteltävä palvelin kuuntelemaan oikeita IP-osoitteita ja -portteja. Tämä tehdään Listen-direktiivillä. Direktiivi hyväksyy kaksi syntaksia: Listen port Listen ip-osoite:porttinumro Kaikkien Listen-direktiivien on oltava määriteltynä Main Server -konfiguratioosassa. Haluttaessa voidaan määrittää palvelin kuuntelemaan kaikkia IPv4 osoitteita: Listen 0.0.0.0:80 IP-Based Virtual Hosts -konfiguroinnista seuraava on yleispätevä malli. Muuta siitä tiedot vastaamaan tehtäväympäristöäsi:

HAAGA-HELIA WWW-palvelin 15 <VirtualHost 172.28.123.246:80> ServerName demoweb.domain.com ServerAdmin webmaster@domain.com DocumentRoot /srv/www/demohakemisto DirectoryIndex default.html </VirtualHost> Esimerkki Name-Based Virtual Hosts -konfiguroinnista: Listen 80 NameVirtualHost 172.28.123.246 <VirtualHost 172.28.123.246:80> ServerName www.netlab.haaga-helia.fi DocumentRoot NetLabPage </Virtualhost> <VirtualHost 172.28.123.246:80> ServerName www.labnet.haaga-helia.fi DocumentRoot LabNetPage </Virtualhost> Testauskäytössä voisi käyttää vain loopback-osoitteita seuraavasti: Listen 80 Listen 8080 <VirtualHost 127.0.0.1:80> ServerName tuoteweb.esimerkki.com:80 DocumentRoot /web/tuote </VirtualHost> <VirtualHost 127.0.0.1:8080> ServerName demoweb.esimerkki.com:8080 DocumentRoot /web/demo </VirtualHost> Käytettäessä host-nimiä apache-palvelin vaatii toimivan nimipalvelun. 4.6.2 Virtual Hosts konfiguraation tarkistaminen

HAAGA-HELIA WWW-palvelin 16 Konfigurointi on kohtuullisen konstikasta ja siksi Apachen kehittäjät ovat sisällyttäneet tarkastustavan konfiguraatioon. Tällä varmistetaan, että palvelin toimii niin kuin sen odotetaan toimivan. Toiminnan tarkastamiseksi on käytössä testauskomentoja. Ne saat selville komentamalla /etc/init.d/apache2 help. Kokeile esimerkiksi: /etc/init.d/apache2 stop /etc/init.d/apache2 configtest /etc/init.d/apache2 extreme-configtest Mikäli kaikki näyttää hyvältä, komenna seuraavaksi /etc/init.d/apache2 start. 5 KOTISIVUVINKKEJÄ 1. Kun OES-järjestelmään luodaan uusi Linux-käyttäjä, hänelle tehdään kotihakemisto /home/ user sekä sille vielä alihakemisto public_html kotisivuja varten. 2. Kotihakemisto on tyypillinen paikka aiemmin mainitulle htpasswd-tiedostolle. Tiedosto luodaan ja sitä ylläpidetään komentotulkin htpasswd-käskyllä. Katso man-sivulta htpasswd:n ohjeet ja parametrit. 3. Luo kotisivulle tarvittava alihakemistorakenne sekä indeksitiedosto. Nimeä se DirectoryIndex-direktiivin vaatimalla tavalla. Hätätilassa tiedoston tekee vaikkapa tekstieditorilla: <HTML> <HEAD> <TITLE> Potemkinin kulissit </TITLE <BODY> <H1>Tervetuloa kotisivulleni TIE-tiimiin!<H1> <H3>Opetan <a href= ccna/cc.html target= _blank >reititinverkkoja</a>.<h3> <H3>Sähköpostiosoitteeni on <a href= mailto:pakat@myy.haaga-helia.fi target= _blank >atte.pakkanen@haagahelia.fi</a>.<h3> </BODY>

HAAGA-HELIA WWW-palvelin 17 </HTML> 4. Sijoita.htaccess-tiedosto jokaiseen hakemistoon, johon - ja jonka alihakemistoihin - on rajoitettu pääsy. Tiedoston suoritus vie aina aikaa. Jos palvelin on ruuhkautunut, tämä vielä lisää käyttäjän tuskaa. Koeta suunnitella hakemistorakenne sellaiseksi, että selviät mahdollisimman vähillä.htaccesstiedostoilla.