Apache VirtualHostia käytetään useiden verkkosivustojen ajamiseen samassa Apache-palvelimessa. Se on Apache 2 -verkkopalvelimen mahtava ominaisuus, joka mahdollistaa verkkosivustojen nopean käyttöönoton yhdellä palvelimella. Apachella on kahden tyyppisiä VirtualHost-kokoonpanoja, IP-pohjainen VirtualHost ja nimipohjainen VirtualHost.
IP-pohjainen VirtualHost:IP-pohjaisessa VirtualHostissa Apache-palvelimella on useita IP-osoitteita ja se vastaa eri verkkosivustoilla IP-osoitteen perusteella.
Kuva 1: Apache IP -pohjainen VirtualHost.
Nimipohjainen VirtualHost: Nimipohjaisessa VirtualHostissa Apache-palvelimella on yksi IP-osoite ja useita verkkotunnuksia, jotka on määritetty kullekin verkkosivustolle. DNS-palvelimessa jokaiselle näistä toimialuenimistä on määritetty Apache-palvelimen IP-osoite. Sen mukaan, mitä verkkotunnusta asiakas käytti, palvelin palauttaa eri verkkosivustoja.
Kuva 2: Apache-nimeen perustuva VirtualHost.
Tässä artikkelissa aion näyttää, kuinka Apache-nimipohjainen VirtualHost määritetään. Käytän Ubuntu 18.04 LTS:ää esittelyyn. Mutta sen pitäisi toimia missä tahansa nykyaikaisessa Linux-jakelussa ilman mitään muutoksia. Joten aloitetaan.
Apache 2 -verkkopalvelin on saatavilla Ubuntu 18.04 LTS:n virallisessa pakettivarastossa. Joten voit asentaa sen helposti APT-paketinhallinnan avulla.
Päivitä ensin APT-pakettivaraston välimuisti seuraavalla komennolla:
Asenna Apache 2 -verkkopalvelin suorittamalla seuraava komento:
$ sudo apt install apache2
Nyt paina y ja jatka sitten painamalla.
Apache 2 -verkkopalvelin tulee asentaa.
Nyt sinun on määritettävä DNS-palvelin yhdistämään verkkotunnukset, joita haluat käyttää VirtualHostille, Apache-palvelimesi IP-osoitteeseen.
Löydät Apache-palvelimesi IP-osoitteen seuraavalla komennolla:
Kuten näet, IP-osoite minun tapauksessani on 192.168.21.166. Se on erilainen sinulle. Muista siis korvata se tästä lähtien omallasi.
Jos haluat oppia määrittämään Apache VirtualHostin paikallisesti, voit käyttää /etc/hosts-tiedostoa paikalliseen DNS-/nimiselvitykseen.
Jos haluat määrittää paikallisen DNS-resoluution, avaa /etc/hosts-tiedosto nanolla seuraavasti:
Lisää nyt tiedostoon rivi alla olevan kuvakaappauksen mukaisesti. Paina sitten + x ja sen jälkeen y ja tallentaaksesi tiedoston.
Nyt paikallisen nimenselvityksen pitäisi toimia.
Haluan säilyttää kaikki Apache VirtualHostin verkkosivustotiedot tietyssä hakemistossa /www. Täällä haluan luoda hakemiston jokaiselle käyttäjälle. Jokaisella käyttäjällä on myös oma public_html/ ja logs/ -hakemisto.
Esimerkiksi kolmen käyttäjän bob (esimerkki1.fi), alice (esimerkki2.fi) ja linda (esimerkki3.fi) hakemistorakenne on seuraava:
/www- esimerkki1.fi/- www/- julkinen_html/- index.html- lokit/- esimerkki2.fi/- www/- julkinen_html/- index.html- lokit/- esimerkki3.fi/- www/- julkinen_html/- index.html- lokit/
Helppo tapa tehdä se on luoda malli- tai runkohakemisto ja laittaa hakemistorakenne sinne. Luo sitten jokainen käyttäjä käyttämällä tätä runkohakemistoa.
Kopioi ensin oletusrunkohakemiston /etc/skel sisältö toiseen hakemistoon /etc/skel-www seuraavasti:
$ sudo cp -rv /etc/skel /etc/skel-www
Siirry nyt uuteen luurankohakemistoon seuraavasti:
Luo sitten haluamasi hakemistorakenne runkohakemiston sisään seuraavasti:
$ sudo mkdir -p www/{public_html,logs}
Voit myös luoda oletusarvoisen index.html-tiedoston hakemistoon public_html/, jos haluat.
$ echo "
Luo nyt /www-hakemisto seuraavalla komennolla:
Nyt voit luoda käyttäjän bobin osoitteelle www.example1.com seuraavasti:
$ sudo useradd --create-home --home-dir /www/example1.com --shell/bin/bash --gid www-data --skel /etc/skel-www bob
Luo samalla tavalla käyttäjäliisa osoitteelle www.example2.com seuraavasti:
$ sudo useradd --create-home --home-dir /www/example2.com --shell /bin/bash--gid www-data --skel /etc/skel-www alice
Luo jälleen käyttäjä linda osoitteelle www.example3.com seuraavasti:
$ sudo useradd --create-home --home-dir /www/example3.com --shell /bin/bash--gid www-data --skel /etc/skel-www linda
Tässä määritin jokaisen käyttäjän ensisijaisen ryhmän www-datalle. Oletuksena Apache-palvelin toimii tässä ryhmässä. Jos en olisi tehnyt niin, Apache-palvelin ei voi käyttää public_html/-hakemiston tiedostoja eikä luoda lokitiedostoja logs/-hakemistoon.
Nyt olet valmis määrittämään Apache VirtualHostin kolmelle käyttäjälle, bob (www.example1.com), alice (www.example2.com) ja Linda (www.example3. fi).
Ubuntun oletusarvoinen Apache-sivustomäärityshakemisto on /etc/apache2/sites-available.
Siirry nyt hakemistoon /etc/apache2/sites-available/ seuraavasti.
$ cd /etc/apache2/sites-available/
Luo ensin uusi määritystiedosto osoitteelle bob www.example1.com.conf seuraavasti:
$ sudo nano www.example1.com.conf
Tekstieditori tulee avata.
Kirjoita nyt seuraavat rivit.
Palvelimennimi esimerkki1.comPalvelinAlias www.example1.comDocumentRoot "/www/esimerkki1.fi/www/julkinen_html"<Hakemisto "/www/esimerkki1.fi/www/julkinen_html">Asetukset -FollowSymViews +M IndexesAllowOverride allVaadi kaikki myönnetty ErrorLog "/www/example1.com/www/logs/error.log"CustomLog "/www/example1.com/www/logs/access.log" yhdistetty
HUOMAA: muuta lihavoituja tekstejä tarpeidesi mukaan.
Lopuksi määritystiedoston www.example.com.conf pitäisi näyttää seuraavalta. Tallenna asetustiedosto painamalla + x ja sen jälkeen y ja.
Kopioi vain bobin määritystiedosto (www.example1.com.conf) ja tee tarvittavat muutokset.
Kopioi bob for alicen ja lindan määritystiedosto seuraavilla komennoilla:
$ sudo cp -v www.example1.com.conf www.example2.com.conf$ sudo cp -v www.example1.com.conf www.example3.com.conf
Muokkaa nyt Alicen määritystiedostoa seuraavasti:
$ sudo nano www.example2.com.conf
Vaihda nyt kaikki esimerkin 1 esiintymät esimerkiksi 2. Tallenna sitten tiedosto.
Tee sama Lindalle.
$ sudo nano www.example3.com.conf
Muuta kaikki esimerkin 1 esiintymät esimerkiksi 3 ja tallenna tiedosto.
Poista nyt Apachen oletussivuston määritykset käytöstä seuraavasti:
$ sudo a2dissite 000-default.conf
Ota nyt käyttöön VirtualHost-määritykset www.example1.com.conf, www.example2.com.conf, www.example3.com.conf seuraavasti:
$ sudo a2ensite www.example1.com.conf www.example2.com.conf www.example3.com.conf
Käynnistä lopuksi Apache-palvelu uudelleen seuraavasti:
$ sudo systemctl käynnistä apache2 uudelleen
Yritä nyt käyttää verkkosivustoja www.example1.com, www.example2.com, www.example3.com
Kuten näet, kaikki nämä sivustot toimivat odotetusti.
HUOMAA: Muutin jokaisen sivuston oletussivun index.html niin, että se on hieman erilainen jokaisessa verkkosivustossa testaustarkoituksessa. Muuten et voi kertoa, toimiiko VirtualHost-kokoonpano vai ei.
Joten, näin määrität nimipohjaisen Apache VirtualHostin Ubuntu 18.04 LTS:ssä. Kiitos, että luit tämän artikkelin.
PREV: Yhdistä raporttipalvelimeen Management Studiossa - SQL Server...
NEXT: Raportointipalvelujen perusteet: Yleiskatsaus ja asennus - Yksinkertainen ...