Joni Junni

Linux palvelimena: Apache ja virtualhostit

Categories: [school]
Tags: [linux], [linux-server-course]

2.2.2012 klo 12.16

Tämän viikon kotitehtävässä olisi tarkoitus konfiguroida Apacheen pari virtuaalihostia ja tutkailla niiden toimintaa. Tälläkertaa ajattelin tehdä tehtävän vähän eritavalla kuin aikaisemmin: asentaa virtuaalikoneen ESXi-hostilleni ja tehdä harjoitukset siellä.

Aloitin tehtävän kirjautumalla ESXi-hostille VMWaren vSphere Client-softalla, jolla hallitaan ESXi- ja vCenter-palvelimia:

vmware-login

Virtuaalikoneen luominen ja asentaminen harjoitusta varten

Tein hostille uuden virtuaalikoneen seuraavanlaisilla spekseillä:

Tässä tapauksessa käytän Ubuntun sijasta Debiania koska palvelimellani ei sattunut olemaan Ubuntun levykuvaa.

Asetuksista määritin virtuaalikoneen käynnistymään ISO-levykuvalta palvelimen omalta datastorelta sekä virtuaalikoneen verkoksi sisäverkon, koska emme halua palvelinta näkymään julkiseen verkkoon.

srv-settings1

Käyttöjärjestelmän asentaminen virtuaalikoneeseen

Kuinka sitten asennetaan käyttöjärjestelmä tietokoneeseen joka ei fyysisesti ole olemassa? Itse asennus ja alkukonfiguroinnit tapahtuvat vSphere Clientin kautta sen sisältämän konsolitoiminnon avulla. Kun verkkoasetukset ovat kunnossa, voimme jatkaa virtuaalikoneen kanssa työskentelyä SSH-yhteyden läpi.

Jokaisella virtuaalikoneella on oma konsolinsa joka on ikäänkuin virtuaalinen “näyttöpääte”, jonka kautta voidaan olla vuorovaikutuksessa virtuaalikoneen kanssa. Konsoli-ikkunan kautta onnistuu myös näppäimistön ja hiiren käyttö virtuaalikoneen kanssa ja sen kautta voidaan hallita CD-, levyke-asemia ja USB-laitteita.

vm-console

Itse käyttöjärjestelmän asennukseen liittyviä kohtia en tässä käy läpi, tässä tiivistettynä valitut asetukset:

Asennus on valmis! Asennus alkoi 12.21 ja se oli käyttövalmiina kirjautumisruudussa 12.27. Ei paha asennusaika, ottaen huomioon että kyeessä oli netinstall-asennus.

finished-install

Verkkoasetukset kuntoon

Nyt meillä on toimiva virtuaalikone. Määritetäänpä sille kiinteä IP DHCP-poolin ulkopuolelta:

su
nano /etc/network/interfaces

Ensimmäisellä komennolla otamme käyttöön pääkäyttäjän oikeudet kirjautumalla järjestelmään roottina (Debianissa ei ole oletuksena sudoa asennettuna). Sitten avaamme nanolla /etc/network/interfaces-tiedoston, jossa kaikkien verkkokorttien asetukset ovat määritettyinä.

interfaces-dhcp

Minun tapauksessani siellä ei näy loopback-interfacen lisäksi kuin virtuaalikoneen verkkokortti eth0. Muutin sen asetukset seuraavanlaisiksi:

# The primary network interface
auto eth0
    iface eth0 inet static
        address 10.40.1.11
        netmask 255.0.0.0
        gateway 10.40.1.3

Jotta uudet asetukset tulisivat voimaan, käynnistetään verkkoyhteys eth0 uudelleen komennolla:

ifdown eth0 && ifup eth0

Nyt voimme kokeilla toiselta koneelta vastaako virtuaalikone pingiin:

pingtest

DNS-asetukset

DNS-asetukset löytyvät tiedostosta /etc/resolv.conf. Avataan ne komennolla:

nano /etc/resolv.conf

Minun tapauksessani asetuksissa on määritettynä domain-osoite sekä kaksi nimipalvelinta:

resolv-conf

Käytän tässä harjoituksessa verkon DNS-palvelinta osotteiden määrittelyyn. Määrittelin DNS-palvelimeen staattisen tietueen “srv-deb2” osoittamaan virtuaalipalvelimelle, jotta voin käyttää kyseistä nimeä osoitteena selaimessa:

smoothwall

Apachen konfigurointi

Koska valitsin jo asennusvaiheessa pakettienvalinnassa kohdan “Web Server”, on minulla Apache jo asennettuna ja toiminnassa.

Uuden virtuaalihostin luominen onnistuu näppärästi kopioimalla /etc/apache2/sites-available-hakemistosta default-tiedosto sites-enablediin uudella nimellä:

cp /etc/apache2/sites-available/default /etc/apache2/sites-enabled/pumba.com

Sen jälkeen muokataan pumba.com-tiedostoa ja lisätään sinne ServerName-asetus ja muutetaan DocumentRoot-hakemiston polku halutuksi:

pumba-servername

Sitten luodaan virtuaalihostin hakemisto ja lisätään sinne index.html-tiedosto:

mkdir /var/www/pumba-com
echo "Jee Pumban kotisivut" >> /var/www/pumba-com/index.html

Lopuksi määritellään DNS-palvelimelle pumba.com osoittamaan virtuaalipalvelimelle:

pumba-dns

Lopputuloksena klo 14.12 meillä on kaksi toimivaa virtuaalihostia joista toinen vastaa palvelimen nimellä ja IP-osoitteella sekä toinen joka vastaa pumba.com-osoitteeseen:

Vasemmalla default-virtualhost, oikealla pumba.com-virtualhost

Virheilmoitukset

Virhe 404 – Not found

10.40.1.199 - - [02/Feb/2013:14:25:52 +0200] "GET /jee.html HTTP/1.1" 404 499 "- " "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Ch rome/24.0.1312.57 Safari/537.17"

Yritin hakea selaimella http://pumba.com/jee.html, jota ei ollut palvelimella olemassa.

Virhe 403 – Forbidden

10.40.1.199 - - [02/Feb/2013:14:41:37 +0200] "GET /salainen.html HTTP/1.1" 403 505 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17"

Yritin avata selaimella http://pumba.com/salainen.html, mutta siihen ei ole oikeuksia. Otin oikeudet pois virheen aiheuttamista varten komennolla:

chmod o-r salainen.html

Lähteet