Joonis 1: Apache IP-põhine VirtualHost.
Nimepõhine VirtualHost: Nimepõhises VirtualHostis on Apache-serveril iga veebisaidi jaoks konfigureeritud üks IP-aadress ja mitu domeeninime. DNS-serveris määratakse kõigile neile domeeninimedele Apache-serveri IP-aadress. Sõltuvalt sellest, millist domeeninime klient kasutas, tagastab server erinevad veebisaidid.
Joonis 2: Apache'i nimepõhine VirtualHost.
Selles artiklis näitan teile, kuidas konfigureerida Apache nimepõhist VirtualHost. Ma kasutan Ubuntu 18-d.04 LTS meeleavalduseks. Kuid see peaks töötama mis tahes kaasaegses Linuxi jaotuses, kus muudatusi pole vähe. Alustame siis.
Apache 2 veebiserveri installimine:
Apache 2 veebiserver on saadaval Ubuntu 18 ametlikus paketihoidlas.04 LTS. Nii saate selle hõlpsalt installida APT paketihalduri abil.
Kõigepealt värskendage APT paketi hoidla vahemälu järgmise käsuga:
$ sudo apt värskendus
Nüüd käivitage Apache 2 veebiserveri installimiseks järgmine käsk:
$ sudo apt install apache2
Nüüd vajutage y ja seejärel vajutage
Apache 2 veebiserver peaks olema installitud.
DNS-i seadistamine:
Nüüd peate konfigureerima DNS-serveri, et kaardistada domeeninimed, mida soovite VirtualHosti jaoks kasutada, oma Apache-serveri IP-aadressiga.
Apache serveri IP-aadressi leiate järgmise käsuga:
$ ip a | egrep "inet"Nagu näete, on minu puhul IP-aadress 192.168.21.166. Teie jaoks on see erinev. Niisiis, asendage see edaspidi kindlasti oma omaga.
Kui soovite õppida, kuidas Apache VirtualHostit lokaalselt konfigureerida, saate kasutada / etc / hosts fail kohaliku DNS-i / nime eraldamiseks.
Kohaliku DNS-i eraldusvõime konfigureerimiseks avage / etc / hosts faili failiga nano järgnevalt:
$ sudo nano / etc / hosts
Nüüd lisage failile alloleval ekraanipildil märgitud rida. Seejärel vajutage
Nüüd peaks kohalike nimede eraldusvõime toimima.
Kataloogistruktuurid:
Tahan hoida kõik oma Apache VirtualHosti veebisaidi andmed kindlas kataloogis / www. Siin tahan luua kataloogi igale kasutajale. Igal kasutajal on oma public_html / ja logid / kataloogi samuti.
Näiteks 3 kasutajale bob (näide1.com), alice (näide2.com), linda (näide3.com), kataloogistruktuur on järgmine:
/ www- näide1.com /
- www /
- public_html /
- indeks.HTML
- logid /
- näide2.com /
- www /
- public_html /
- indeks.HTML
- logid /
- näide3.com /
- www /
- public_html /
- indeks.HTML
- logid /
Lihtne viis selleks on luua mall või skeleti kataloog ja panna kataloogistruktuur sinna. Seejärel looge kõik kasutajad selle skeleti kataloogi abil.
Kõigepealt kopeerige skeleti vaikekataloogi sisu / etc / skel teise kataloogi / etc / skel-www järgnevalt:
$ sudo cp -rv / etc / skel / etc / skel-www
Nüüd navigeerige uude skeleti kataloogi järgmiselt:
$ cd / etc / skel-www
Seejärel looge skeleti kataloogi soovitud kataloogistruktuur järgmiselt:
$ sudo mkdir -p www / public_html, logid
Võite luua ka vaikimisi indeks.HTML faili public_html / kataloogi, kui soovite.
$ echo "See töötab
"| sudo tee www / public_html / index.HTML
Nüüd looge / www kataloogi järgmise käsuga:
$ sudo mkdir / www
Kasutajate loomine:
Nüüd saate kasutaja luua bob jaoks www.näide1.com järgmiselt:
$ sudo useradd --create-home --home-dir / www / example1.com - kest/ bin / bash --gid www-data --skel / etc / skel-www bob
Samamoodi looge kasutaja alice jaoks www.näide2.com järgmiselt:
$ sudo useradd --create-home --home-dir / www / example2.com - shell / bin / bash--gid www-data --skel / etc / skel-www alice
Jällegi looge kasutaja linda veebisaidile.näide3.com järgmiselt:
$ sudo useradd --create-home --home-dir / www / example3.com - shell / bin / bash--gid www-data --skel / etc / skel-www linda
Siin määrasin iga kasutaja peamise rühma www-andmed. Vaikimisi töötab Apache server selle rühmana. Kui ma poleks seda teinud, ei pääse Apache'i server failide juurde public_html / kataloogi ja loo logifailid logid / kataloogi.
Apache VirtualHosti seadistamine:
Nüüd olete valmis seadistama Apache VirtualHosti 3 kasutaja jaoks bob (www.näide1.com), alice (www.näide2.com) ja linda (www.näide3.com).
Apache'i vaikekonfiguratsiooni kataloog Ubuntu on vaikimisi / etc / apache2 / sites-available.
Nüüd navigeerige kataloogi / etc / apache2 / saidid-saadaval / järgnevalt.
$ cd / etc / apache2 / sites-available /
Kõigepealt looge bobile uus konfiguratsioonifail www.näide1.com.konf järgnevalt:
$ sudo nano www.näide1.com.konf
Tuleks avada tekstiredaktor.
Nüüd tippige järgmised read.
ServerName näide1.comServerAlias www.näide1.com
DocumentRoot "/ www / example1.com / www / public_html "
Valikud -FollowSymLinks + MultiViews + indeksid
AllowOverride all
Nõua kõik lubatud
ErrorLog "/ www / example1.com / www / logs / error.logi "
Kohandatud logi "/ www / näide1.com / www / logs / access.log "kombineeritud
MÄRKUS. Muutke rasvaseid tekste vastavalt oma vajadustele.
Lõpuks konfiguratsioonifail www.näide.com.konf peaks välja nägema järgmiselt. Vajutage
konfigureerimisfaili kopeerimiseks bob (www.näide1.com.konf) ja tehke vajalikud muudatused.
Kopeerige konfiguratsioonifail bob eest alice ja linda järgmiste käskudega:
$ sudo cp -v www.näide1.com.konf www.näide2.com.konf$ sudo cp -v www.näide1.com.konf www.näide3.com.konf
Nüüd muutke faili konfiguratsioonifaili alice järgnevalt:
$ sudo nano www.näide2.com.konf
Nüüd muutke kõiki rakenduse näide1 kuni näide2. Seejärel salvestage fail.
Tehke sama asja linda.
$ sudo nano www.näide3.com.konf
Muutke kõiki domeeni näide1 kuni näide3 ja salvestage fail.
VirtualHosti konfiguratsioonide lubamine:
Nüüd keelake Apache'i veebisaidi vaikekonfiguratsioon järgmiselt:
$ sudo a2dissite 000-vaikimisi.konf
Nüüd lubage VirtualHosti konfiguratsioonid www.näide1.com.konf, www.näide2.com.konf, www.näide3.com.konf järgnevalt:
$ sudo a2ensite www.näide1.com.konf www.näide2.com.konf www.näide3.com.konf
Lõpuks taaskäivitage Apache teenus järgmiselt:
$ sudo systemctl taaskäivitage apache2
VirtualHostide testimine:
Nüüd proovige pääseda juurde veebisaitidele www.näide1.com, www.näide2.com, www.näide3.com
Nagu näete, töötavad kõik need veebisaidid ootuspäraselt.
MÄRGE: Muutsin vaikelehte indeks.HTML iga saidi jaoks nii, et see oleks iga veebisaidi jaoks testimise eesmärgil veidi erinev. Vastasel juhul ei saa te öelda, kas VirtualHost'i konfiguratsioon töötab või mitte.
Nii konfigureerite Ubuntu 18 nimepõhise Apache VirtualHosti.04 LTS. Täname selle artikli lugemise eest.