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:
Virtuaalikoneen luominen ja asentaminen harjoitusta varten
Tein hostille uuden virtuaalikoneen seuraavanlaisilla spekseillä:
- Käyttöjärjestelmä: Debian 6 64-bit
- CPUs: 1
- RAM: 1024 Mb
- HDD: 16 Gb
- Network Adapters: 1 kpl, Internal network
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.
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.
Itse käyttöjärjestelmän asennukseen liittyviä kohtia en tässä käy läpi, tässä tiivistettynä valitut asetukset:
- Asennuskieli: Englanti
- Näppäimistökartta: Suomi
- Hostname: srv-deb2
- Domain: hima.lan
- Root-passut ja käyttäjätunnuksen määritys
- Osiointi: /-osio, käytä koko levyä + swap
- Asennettavat paketit: ruksi pois kohdasta Graphical User Interface; ruksit kohtaan Web Server ja SSH Server
- GRUB: asenna MBR:ään
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.
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ä.
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:
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:
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:
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:
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:
Lopputuloksena klo 14.12 meillä on kaksi toimivaa virtuaalihostia joista toinen vastaa palvelimen nimellä ja IP-osoitteella sekä toinen joka vastaa pumba.com-osoitteeseen:
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
- NetworkConfiguration – Debian Wiki (http://wiki.debian.org/NetworkConfiguration#Configuring_the_interface_manually)
- VirtualHost Examples – Apache HTTP Server (http://httpd.apache.org/docs/2.2/vhosts/examples.html)
- Tero Karvinen: Apache; kertaus ja edistynyttä asiaa w05 -luento (http://terokarvinen.com/2012/aikataulu-linux-palvelimena-ict4tn003-7-ict4tn003-kevaalla-2013)