Slika 1: VirtualHost temeljen na Apache IP-u.
VirtualHost zasnovan na imenu: U VirtualHost baziranom na imenima, Apache poslužitelj ima jednu IP adresu i više imena domena konfiguriranih za svaku web stranicu. U DNS poslužitelju, svakom od ovih imena domena dodjeljuje se IP adresa Apache poslužitelja. Ovisno o imenu domene koju je klijent koristio, poslužitelj vraća različite web stranice.
Slika 2: VirtualHost zasnovan na imenu Apache.
U ovom članku pokazat ću vam kako konfigurirati VirtualHost temeljen na imenu Apache. Koristit ću Ubuntu 18.04 LTS za demonstraciju. Ali to bi trebalo raditi na bilo kojoj modernoj Linux distribuciji s malo ili nimalo promjena. Pa, krenimo.
Instaliranje Apache 2 web poslužitelja:
Web poslužitelj Apache 2 dostupan je u službenom spremištu paketa Ubuntu 18.04 LTS. Dakle, možete ga jednostavno instalirati s upraviteljem paketa APT.
Prvo ažurirajte predmemoriju spremišta APT paketa sljedećom naredbom:
$ sudo apt ažuriranje
Sada pokrenite sljedeću naredbu za instalaciju web poslužitelja Apache 2:
$ sudo apt instalirati apache2
Sada pritisnite g a zatim pritisnite
Treba instalirati web poslužitelj Apache 2.
Konfiguriranje DNS-a:
Sada morate konfigurirati DNS poslužitelj da imena domena koje želite koristiti za VirtualHost preslikate na IP adresu vašeg Apache poslužitelja.
IP adresu vašeg Apache poslužitelja možete pronaći pomoću sljedeće naredbe:
$ ip a | egrep "inet"Kao što vidite, IP adresa u mom slučaju je 192.168.21.166. Za vas će biti drugačije. Pazite da ga od sada zamijenite svojim.
Ako želite naučiti kako lokalno konfigurirati Apache VirtualHost, tada možete koristiti / etc / hosts datoteka za lokalni DNS / razrješenje imena.
Da biste konfigurirali lokalnu DNS rezoluciju, otvorite / etc / hosts datoteka s nano kako slijedi:
$ sudo nano / etc / hosts
Sada u datoteku dodajte redak kako je označen na snimci zaslona u nastavku. Zatim pritisnite
Sada bi lokalno rješavanje imena trebalo raditi.
Strukture direktorija:
Želim čuvati sve podatke o web mjestu svog Apache VirtualHost-a u određenom direktoriju / www. Ovdje želim stvoriti direktorij za svakog korisnika. Svaki će korisnik imati svoje public_html / i trupci / direktorij također.
Na primjer, za 3 korisnika bob (primjer1.com), alice (primjer2.com), linda (primjer3.com), struktura direktorija je sljedeća:
/ www- primjer1.com /
- www /
- public_html /
- indeks.html
- trupci /
- primjer2.com /
- www /
- public_html /
- indeks.html
- trupci /
- primjer3.com /
- www /
- public_html /
- indeks.html
- trupci /
Jednostavan način za to je stvoriti direktorij predloška ili kostura i tamo staviti strukturu direktorija. Zatim izradite svakog korisnika pomoću ovog direktorija kostura.
Prvo kopirajte sadržaj zadanog direktorija kostura / etc / skel u drugi direktorij / etc / skel-www kako slijedi:
$ sudo cp -rv / etc / skel / etc / skel-www
Sada prijeđite na novi direktorij kostura na sljedeći način:
$ cd / etc / skel-www
Zatim stvorite željenu strukturu direktorija unutar direktorija kostura kako slijedi:
$ sudo mkdir -p www / public_html, logs
Također možete stvoriti zadani indeks.html datoteku u public_html / direktorij ako želite.
$ echo "Radi
"| sudo tee www / public_html / index.html
Sada stvorite / www direktorij sa sljedećom naredbom:
$ sudo mkdir / www
Stvaranje korisnika:
Sada možete stvoriti korisnika bob za www.primjer1.com kako slijedi:
$ sudo useradd --create-home --home-dir / www / example1.com --ljuska/ bin / bash --gid www-data --skel / etc / skel-www bob
Na isti način stvorite korisnika alice za www.primjer2.com kako slijedi:
$ sudo useradd --create-home --home-dir / www / example2.com - školjka / bin / bash--gid www-data --skel / etc / skel-www alice
Opet, stvorite korisničku lindu za www.primjer3.com kako slijedi:
$ sudo useradd --create-home --home-dir / www / example3.com - školjka / bin / bash--gid www-data --skel / etc / skel-www linda
Ovdje sam dodijelio primarnu grupu svakog korisnika www-podaci. Prema zadanim postavkama Apache poslužitelj radi kao ova grupa. Da to nisam učinio, Apache poslužitelj neće moći pristupiti datotekama u public_html / direktorija i stvorite datoteke dnevnika u trupci / imenik.
Konfiguriranje Apache VirtualHost:
Sada ste spremni konfigurirati Apache VirtualHost za 3 korisnika bob (www.primjer1.com), alice (www.primjer2.com) i linda (www.primjer3.com).
Zadani direktorij konfiguracije web mjesta Apache na Ubuntuu je / etc / apache2 / web-mjesta dostupna.
Sada se pomaknite do direktorija / etc / apache2 / web-mjesta dostupna / kako slijedi.
$ cd / etc / apache2 / sites-available /
Prvo stvorite novu konfiguracijsku datoteku za bob www.primjer1.com.konf kako slijedi:
$ sudo nano www.primjer1.com.konf
Treba otvoriti uređivač teksta.
Sada upišite sljedeće retke.
Ime poslužitelja primjer1.comServerAlias www.primjer1.com
DocumentRoot "/ www / example1.com / www / public_html "
Opcije -FollowSymLinks + MultiViews + Indexes
AllowOverride all
Zahtijevaj sve odobreno
ErrorLog "/ www / example1.com / www / logs / error.zapisnik "
CustomLog "/ www / example1.com / www / logs / access.trupac "kombiniran
NAPOMENA: Promijenite podebljani tekst prema vašim zahtjevima.
Konačno, konfiguracijska datoteka www.primjer.com.konf treba izgledati kako slijedi. Pritisnite
samo kopirati konfiguracijsku datoteku za bob (www.primjer1.com.konf) i napravite ono malo promjena koje su potrebne.
Kopirajte konfiguracijsku datoteku bob za alice i linda sa sljedećim naredbama:
$ sudo cp -v www.primjer1.com.conf www.primjer2.com.konf$ sudo cp -v www.primjer1.com.conf www.primjer3.com.konf
Sada uredite konfiguracijsku datoteku alice kako slijedi:
$ sudo nano www.primjer2.com.konf
Sada promijenite sve pojave primjer1 do primjer2. Zatim spremite datoteku.
Učinite istu stvar za linda.
$ sudo nano www.primjer3.com.konf
Promijeni sve pojave primjer1 do primjer3 i spremite datoteku.
Omogućavanje konfiguracija VirtualHost:
Sada onemogućite zadanu konfiguraciju web mjesta Apache na sljedeći način:
$ sudo a2dissite 000-zadano.konf
Sada omogućite konfiguracije VirtualHost www.primjer1.com.konf, www.primjer2.com.konf, www.primjer3.com.konf kako slijedi:
$ sudo a2ensite www.primjer1.com.conf www.primjer2.com.conf www.primjer3.com.konf
Na kraju, ponovo pokrenite uslugu Apache na sljedeći način:
$ sudo systemctl ponovno pokrenite apache2
Testiranje virtualnih hostova:
Sada pokušajte pristupiti web mjestima www.primjer1.com, www.primjer2.com, www.primjer3.com
Kao što vidite, sve ove web stranice rade kako se očekivalo.
BILJEŠKA: Promijenio sam zadanu stranicu indeks.html za svaku web stranicu tako da se malo razlikuje za svaku web stranicu u svrhu testiranja. Inače nećete moći znati funkcionira li konfiguracija VirtualHost ili ne.
Dakle, na taj način konfigurirate Apache VirtualHost temeljen na imenu na Ubuntu 18.04 LTS. Hvala što ste pročitali ovaj članak.