KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012
SISÄLLYS 1 JOHDANTO 3 2 WWW-PALVELIMEN TOIMINTA 4 3 OMINAISUUDET 5 4 RAKENNE 6 5 ASENNUS 7 LÄHTEET 10
3 1 JOHDANTO WWW-palvelimen päätarkoitus on jakaa HTTP-protokollaa käyttäen HTMLdokumentteja. Se voi olla joko tietokone tai ohjelmisto. Tämän seminaarityön tarkoituksena on kertoa maailman suosituimmasta WWW-palvelimesta, ohjelmasta, jonka osuus maailman WWW-palvelimista on 58% syyskuussa 2012, Apache WWWpalvelimesta. (Netcraft 2012.) Kuva 1. Palvelimien jakautuminen kaikkien domainien kesken Apache HTTPd-palvelin on Apache Software Foundationin tunnetuin tuote ja se on avoimeen lähdekoodiin perustuva, jonka pohjalta on myös rakennettu palvelinratkaisut Apache Tomcat ja Apache Cocoon. Sen historia alkaa vuodesta 1995, kun sitä alettiin kehittää suositusta NCSA:n HTTPd:stä sen kehittäjän erotessa vuonna 1994. Joukko kehittäjiä aloittivat yhteistyön huomatessaan palvelimen jatkokehityksen tarpeen ja he julkaisivat ensimmäisen virallisen version (0.6.2) Apache-palvelimesta keväällä 1995. Ohjelmisto oli kuitenkin uudelleen suunnittelun tarpeessa. Osan ryhmästä
4 kehittäessä vanhaa, eräs suunnittelija loi arkkitehtuurin uudelleen. Laajan testauksen jälkeen joulukuussa 1995 julkaistiin Apache 1.0. (Apache Software Foundation 2012.) Kehityksen jatkuessa huimaa vauhtia vuonna 1999 sen jäsenet perustivat Apache Software Foundationin tarjotakseen järjestöllistä, juridista ja taloudellista tukea Apache HTTP-palvelinta varten. (Apache Software Foundation 2012.) Apache HTTPd 2.4.3 on uusin versio ja 2.0.x sekä 2.3.x ovat vielä yleisesti käytössä ja niihin saa päivityksiä. Päivitykset korjaavat bugeja sekä tietoturvariskejä. (Apache Software Foundation 2012.) Apache WWW-palvelin on saatavilla monille eri käyttöjärjestelmille, esim. Linuxille, Unixille, OS X:lle ja MS Windowsille. Se on joustava ja muokattavissa kolmannen osapuolen moduuleilla sekä se tukee viimeisimpiä protokollia, kuten HTTP/1.1. (Httpd Wiki 2012.) Apachen suosio on helppo selittää, se on ilmainen ja vapaasti käytettävissä. Apua löytyy helposti Apachen kotisivuilta ja laajasti saatavilla olevasta vertaistuesta. (Apache Software Foundation 2012.) 2 WWW-PALVELIMEN TOIMINTA Internetin käyttäjät voivat käyttää WWW-palvelimien julkaisemia sivuja ja tiedostoja selaimella. Palvelin kuuntelee käyttäjän pyyntöjä ja palauttaa pyydetyt tiedostot käyttäjän selaimelle. TCP/IP-verkko välittää pyynnöt ja vasteet. HTTP-protokollaa käytetään selaimen ja palvelimen välillä. Kuva 2. Client/server periaate.
5 3 OMINAISUUDET Ainoastaan staattiset tiedostot kulkevat HTTP-protokollan yli pelkällä Apachella. Sitä räätälöidään erilaisilla moduuleilla niin, että se täyttää käyttäjän vaatimukset. Moduuleista osa on kolmannen osapuolen tekemiä ja osa ohjelmiston omia. (Apache Software Foundation 2012.) Tässä listattuna joitakin tärkeimpiä ominaisuuksia: Toimii useimmissa käyttöjärjestelmissä HTTP 1.1-protokolla tuki Modulaarinen Virheilmoituksien säätö Multiprotocol tuki IPv6 tuki Proxy-toiminnot SQL tuki jne (Apache Software Foundation 2012.) Kuva 3. Apachesta valmiiksi löytyviä moduulit.
6 4 RAKENNE Apachen rakenne koostuu ytimestä ja erilaisista moduleista, jotka voidaan kiinnittää palvelimeen tai ottaa käyttöön dynaamisesti ajonaikana. Virallisessa Apachessa on ydin ja joitakin moduuleja valmiina. Apachen voin ladata binääri- tai lähdekoodiversiona, binääriversio on tarkoitettu asennettavaksi sellaisenaan ja sen saa useille käyttöjärjestelmille. Lähdekoodiversiota voidaan editoida ja muuntaa haluamakseen ja ennen asennusta se pitää kääntää ja kehittää asennuskelpoiseksi. (Apache-palvelin 2002.) Tärkein konfigurointitiedosto on httpd.conf, joka sisältää palvelimen tärkeimmät asetustiedot. On olemassa graafisia editoreita, mutta muokkaaminen onnistuu myös tekstieditorilla näppärästi, koska konfigurointitiedosto on hyvin kommentoitu. ServerType, Port, User, ServerRoot, ServerAdmin, VirtualHosts ja niin edelleen muokataan httpd.conf tiedostossa. Mainittakoon VirtualHost eli samalla palvelimella pystyy pitämään virtuaalisia palvelimia. (Apache-palvelin 2002.) Kuva 4. Näkymä Nano-editorilla httpd.conf tiedostossa.
7 5 ASENNUS Tässä seminaarityössä käsittelen asennuksen ja peruskonfiguroinnin Fedora 17 - käyttöjärjestelmälle. Asennus aloitetaan asentamalla uusin Apachen versio paketinhallinnasta(ainakin itsellä HTTPd paketti löytyi valmiina, mutta jos ei niin): #yum install httpd Seuraavaksi käynnistetään palvelu: #systemctl start httpd.service Tarkastetaan palvelun tila: #systemlctl is-active httpd.service Palvelu on käytössä, jos tilassa lukee active. Komennolla: #netstat -tulpn grep :80 voidaan myös varmistaa, onko palvelu päällä. Kuva 5. Palvelun käynnistys ja varmistus.
8 Palvelun pysäytys ja uudelleen käynnistys onnistuu komennoilla: #systemctl stop httpd.service #systemctl restart httpd.service Palvelimen virheetön toimivuus kannattaa testata luomalla juurihakemistoon (/var/www/html) tiedosto index.html, siihen jotain sisältöä ja sen jälkeen selaimeen http://localhost:80/ HTML tiedoston luonti esim: #touch index.html ja sen muokkaus: #nano index.html Seuraavaksi käsitellään palomuurin portin avaus, jotta tässä tapauksessa samasta sisäverkosta päästään käyttämään WWW-palvelinta. Komento: #system-config-firewall avaa palomuurin hallinnan. Sieltä portti 80 auki ja Apply. Muita Apache-komentoja löytyy esimerkiksi: http://docs.fedoraproject.org/en-us/fedora/17/html/system_administrators_guide/ch- Web_Servers.html
9 Kuva 6. Palomuurin hallinta-ikkuna. Nyt samassa verkossa olevat koneet pitäisivät päästä näkemään palvelimen sivun. Havainnollistetaan kuvana, selaimeen palvelimen osoite. Kuva 7. Testisivu toimii samassa verkossa olevalla koneella.
10 LÄHTEET Apache Software Foundation. 2012. Apache HTTP Server Project. Apache Software Foundationin Internet-sivut. Saatavissa: http://httpd.apache.org/about_apache.html [viitattu 25.9.2012] Apache-palvelin. 2002. WWW:n kehitys ja Apache-palvelin. Myy.helia.fi Internetsivut. Saatavissa: http://myy.helia.fi/~atk90d/palvelin/apache.html [viitattu 10.10.2012] Httpd Wiki. 2012. Frequently Asked Questions. Httpd Wikin Internet-sivut. Saatavissa: http://wiki.apache.org/httpd/faq [viitattu 25.9.2012] Netcraft. 2012. September 2012 Web Server Survey. Netcraftin Internet-sivut. Saatavissa: http://news.netcraft.com/archives/2012/09/10/september-2012-web-serversurvey.html [viitattu 25.9.2012]