Slika 1: VirtualHost na osnovi IP Apache.
VirtualHost na podlagi imen: V VirtualHost, ki temelji na imenih, ima strežnik Apache en naslov IP in več imen domen, konfiguriranih za vsako spletno mesto. V strežniku DNS je vsakemu od teh domenskih imen dodeljen naslov IP strežnika Apache. Strežnik vrne različna spletna mesta, odvisno od imena domene, ki jo je uporabil odjemalec.
Slika 2: VirtualHost, ki temelji na imenu Apache.
V tem članku vam bom pokazal, kako konfigurirati VirtualHost na osnovi imena Apache. Uporabljal bom Ubuntu 18.04 LTS za predstavitev. Vendar bi moralo delovati na kateri koli sodobni distribuciji Linuxa z malo spremembami. Torej, začnimo.
Namestitev spletnega strežnika Apache 2:
Spletni strežnik Apache 2 je na voljo v uradnem repozitoriju paketov Ubuntu 18.04 LTS. Torej ga lahko enostavno namestite z upraviteljem paketov APT.
Najprej posodobite predpomnilnik repozitorija paketov APT z naslednjim ukazom:
$ sudo apt posodobitev
Zdaj zaženite naslednji ukaz za namestitev spletnega strežnika Apache 2:
$ sudo apt namestite apache2
Zdaj pritisnite y in nato pritisnite
Namestiti je treba spletni strežnik Apache 2.
Konfiguriranje DNS:
Zdaj morate strežnik DNS konfigurirati tako, da domenska imena, ki jih želite uporabiti za VirtualHost, preslikate na naslov IP vašega strežnika Apache.
Naslov IP strežnika Apache najdete z naslednjim ukazom:
$ ip a | egrep "inet"Kot lahko vidite, je naslov IP v mojem primeru 192.168.21.166. Za vas bo drugače. Zato ga odslej zamenjajte s svojim.
Če se želite naučiti, kako lokalno konfigurirati Apache VirtualHost, lahko uporabite / etc / hosts datoteka za lokalni DNS / ločljivost imen.
Če želite konfigurirati lokalno ločljivost DNS, odprite / etc / hosts datoteka z nano kot sledi:
$ sudo nano / etc / hosts
Zdaj v datoteko dodajte vrstico, kot je označena na spodnjem posnetku zaslona. Nato pritisnite
Zdaj bi lokalna ločljivost imen morala delovati.
Strukture imenikov:
Vse podatke spletnega mesta svojega Apache VirtualHost želim hraniti v določenem imeniku / www. Tukaj želim ustvariti imenik za vsakega uporabnika. Vsak uporabnik bo imel svojega public_html / in dnevniki / imenik.
Na primer za 3 uporabnike bob (primer1.com), alice (primer2.com), linda (primer3.com), struktura imenika je naslednja:
/ www- primer1.com /
- www /
- public_html /
- indeks.html
- dnevniki /
- primer2.com /
- www /
- public_html /
- indeks.html
- dnevniki /
- primer3.com /
- www /
- public_html /
- indeks.html
- dnevniki /
Enostaven način za to je ustvariti predlogo ali skeletni imenik in tam postaviti strukturo imenikov. Nato ustvarite vsakega uporabnika s pomočjo tega okostnega imenika.
Najprej kopirajte vsebino privzetega okostnega imenika / etc / skel v drug imenik / etc / skel-www kot sledi:
$ sudo cp -rv / etc / skel / etc / skel-www
Zdaj se pomaknite do novega okostnega imenika, kot sledi:
$ cd / etc / skel-www
Nato ustvarite želeno strukturo imenika znotraj okostne mape, kot sledi:
$ sudo mkdir -p www / public_html, logs
Ustvarite lahko tudi privzeto indeks.html v datoteki public_html / imenik, če želite.
$ echo "Deluje
"| sudo tee www / public_html / index.html
Zdaj ustvarite / www imenik z naslednjim ukazom:
$ sudo mkdir / www
Ustvarjanje uporabnikov:
Zdaj lahko ustvarite uporabnika bob za www.primer1.com, kot sledi:
$ sudo useradd --create-home --home-dir / www / example1.com - lupina/ bin / bash --gid www-data --skel / etc / skel-www bob
Na enak način ustvarite uporabnika alice za www.primer2.com, kot sledi:
$ sudo useradd --create-home --home-dir / www / example2.com --shell / bin / bash--gid www-data --skel / etc / skel-www alice
Spet ustvarite uporabniško povezavo za www.primer3.com, kot sledi:
$ sudo useradd --create-home --home-dir / www / example3.com --shell / bin / bash--gid www-data --skel / etc / skel-www linda
Tu sem dodelil primarno skupino vsakega uporabnika www-podatki. Privzeto strežnik Apache deluje kot ta skupina. Če tega ne bi storil, strežnik Apache ne bo mogel dostopati do datotek v public_html / in ustvarite dnevniške datoteke v dnevniki / imenik.
Konfiguriranje Apache VirtualHost:
Zdaj ste pripravljeni za konfiguriranje Apache VirtualHost za 3 uporabnike bob (www.primer1.com), alice (www.primer2.com) in linda (www.primer3.com).
Privzeti imenik za konfiguracijo strani Apache v Ubuntuju je / etc / apache2 / sites-available.
Zdaj se pomaknite do imenika / etc / apache2 / sites-available / kot sledi.
$ cd / etc / apache2 / sites-available /
Najprej ustvarite novo konfiguracijsko datoteko za bob www.primer1.com.conf kot sledi:
$ sudo nano www.primer1.com.conf
Odpreti je treba urejevalnik besedil.
Zdaj vnesite naslednje vrstice.
Ime strežnika primer1.comServerAlias www.primer1.com
DocumentRoot "/ www / example1.com / www / public_html "
Možnosti -FollowSymLinks + MultiViews + Indexes
AllowOverride all
Zahtevaj vse odobreno
ErrorLog "/ www / example1.com / www / logs / error.dnevnik "
CustomLog "/ www / example1.com / www / logs / access.dnevnik "kombinirano
OPOMBA: Spremenite krepko besedilo glede na vaše zahteve.
Na koncu še konfiguracijska datoteka www.primer.com.conf izgleda takole. Pritisnite
samo kopirati konfiguracijsko datoteko za bob (www.primer1.com.conf) in naredite nekaj majhnih sprememb.
Kopirajte konfiguracijsko datoteko bob za alice in linda z naslednjimi ukazi:
$ sudo cp -v www.primer1.com.conf www.primer2.com.conf$ sudo cp -v www.primer1.com.conf www.primer3.com.conf
Zdaj uredite konfiguracijsko datoteko alice kot sledi:
$ sudo nano www.primer2.com.conf
Zdaj spremenite vse pojavitve primer1 do primer2. Nato shranite datoteko.
Naredi isto za linda.
$ sudo nano www.primer3.com.conf
Spremeni vse pojavitve primer1 do primer3 in shranite datoteko.
Omogočanje konfiguracij VirtualHost:
Zdaj onemogočite privzeto konfiguracijo spletnega mesta Apache, kot sledi:
$ sudo a2dissite 000-privzeto.conf
Zdaj omogočite konfiguracije VirtualHost www.primer1.com.conf, www.primer2.com.conf, www.primer3.com.conf kot sledi:
$ sudo a2ensite www.primer1.com.conf www.primer2.com.conf www.primer3.com.conf
Na koncu ponovno zaženite storitev Apache, kot sledi:
$ sudo systemctl znova zaženite apache2
Testiranje VirtualHosts:
Zdaj poskusite dostopati do spletnih strani www.primer1.com, www.primer2.com, www.primer3.com
Kot lahko vidite, vsa ta spletna mesta delujejo po pričakovanjih.
OPOMBA: Spremenil sem privzeto stran indeks.html za vsako spletno stran, tako da se za namene testiranja nekoliko razlikuje. V nasprotnem primeru ne boste mogli ugotoviti, ali konfiguracija VirtualHost deluje ali ne.
Torej, tako konfigurirate Apache VirtualHost na osnovi imen v Ubuntu 18.04 LTS. Hvala, ker ste prebrali ta članek.