Obrázok 1: VirtualHost založený na protokole Apache IP.
Názov založený na VirtualHost: V názve VirtualHost má server Apache pre každú webovú stránku nakonfigurovanú jednu adresu IP a viac doménových mien. Na serveri DNS je každému z týchto názvov domén priradená adresa IP servera Apache. V závislosti od toho, aký názov domény klient použil, server vracia rôzne webové stránky.
Obrázok 2: VirtualHost založený na názve Apache.
V tomto článku vám ukážem, ako nakonfigurovať VirtualHost na základe názvu Apache. Budem používať Ubuntu 18.04 LTS na demonštráciu. Malo by to však fungovať na akejkoľvek modernej distribúcii Linuxu s malými alebo žiadnymi zmenami. Takže poďme na to.
Inštalácia webového servera Apache 2:
Webový server Apache 2 je k dispozícii v oficiálnom úložisku balíkov systému Ubuntu 18.04 LTS. Môžete ho teda ľahko nainštalovať pomocou správcu balíkov APT.
Najskôr aktualizujte medzipamäť úložiska balíkov APT pomocou nasledujúceho príkazu:
$ sudo apt aktualizácia
Teraz spustite nasledujúci príkaz na inštaláciu webového servera Apache 2:
$ sudo apt nainštalovať apache2
Teraz stlačte r a potom stlačte
Mal by byť nainštalovaný webový server Apache 2.
Konfigurácia DNS:
Teraz musíte nakonfigurovať server DNS tak, aby mapoval názvy domén, ktoré chcete používať pre VirtualHost, na adresu IP vášho servera Apache.
IP adresu vášho servera Apache nájdete pomocou nasledujúceho príkazu:
$ ip a | egrep "inet"Ako vidíte, adresa IP v mojom prípade je 192.168.21.166. U teba to bude iné. Odteraz ho teda vymeňte za svoj.
Ak sa chcete dozvedieť, ako konfigurovať Apache VirtualHost lokálne, môžete použiť / etc / hostitelia súbor na lokálne rozlíšenie DNS / mien.
Ak chcete nakonfigurovať miestne rozlíšenie DNS, otvorte / etc / hostitelia súbor s nano nasledovne:
$ sudo nano / etc / hosts
Teraz pridajte do súboru riadok označený na snímke obrazovky nižšie. Potom stlačte
Teraz by malo fungovať riešenie miestneho názvu.
Štruktúry adresárov:
Chcem uchovať všetky údaje o webových stránkach môjho servera Apache VirtualHost v konkrétnom adresári / www. Tu chcem vytvoriť adresár pre každého používateľa. Každý používateľ bude mať svoje vlastné public_html / a guľatina / adresár tiež.
Napríklad pre 3 používateľov bob (príklad1.com), alice (priklad2.com), linda (príklad3.com), adresárová štruktúra je nasledovná:
/ www- príklad1.com /
- www /
- public_html /
- index.html
- guľatina /
- príklad2.com /
- www /
- public_html /
- index.html
- guľatina /
- príklad3.com /
- www /
- public_html /
- index.html
- guľatina /
Jednoduchý spôsob, ako to urobiť, je vytvoriť adresár so šablónami alebo skeletmi a umiestniť tam adresárovú štruktúru. Potom vytvorte všetkých používateľov pomocou tohto skeletového adresára.
Najskôr skopírujte obsah predvoleného adresára kostry / etc / skel do iného adresára / etc / skel-www nasledovne:
$ sudo cp -rv / etc / skel / etc / skel-www
Teraz prejdite do nového adresára kostry nasledovne:
$ cd / etc / skel-www
Potom vytvorte požadovanú štruktúru adresárov vo vnútri kostry takto:
$ sudo mkdir -p www / public_html, logs
Môžete tiež vytvoriť predvolené nastavenie index.html súbor v public_html / adresár, ak chcete.
$ echo "Funguje to
"| sudo tee www / public_html / index.html
Teraz vytvorte / www adresár s nasledujúcim príkazom:
$ sudo mkdir / www
Vytváranie používateľov:
Teraz môžete vytvoriť používateľa bob pre www.príklad1.com takto:
$ sudo useradd --create-home --home-dir / www / example1.škrupina/ bin / bash --gid www-data --skel / etc / skel-www bob
Rovnakým spôsobom vytvorte používateľa alice pre www.príklad2.com takto:
$ sudo useradd --create-home --home-dir / www / example2.com - shell / bin / bash--gid www-data --skel / etc / skel-www alice
Opäť vytvorte používateľa linda pre www.príklad3.com takto:
$ sudo useradd --create-home --home-dir / www / example3.com - shell / bin / bash--gid www-data --skel / etc / skel-www linda
Tu som priradil primárnu skupinu každého používateľa www-data. Server Apache je štandardne spustený ako táto skupina. Ak by som to neurobil, server Apache nebude mať prístup k súborom v priečinku public_html / adresár a vytvárať súbory protokolu v priečinku guľatina / adresár.
Konfigurácia servera Apache VirtualHost:
Teraz ste pripravení nakonfigurovať Apache VirtualHost pre 3 používateľov bob (www.príklad1.com), alice (www.príklad2.com) a linda (www.príklad3.com).
Predvolený konfiguračný adresár stránok Apache na Ubuntu je / etc / apache2 / sites-available.
Teraz prejdite do adresára / etc / apache2 / sites-available / nasledovne.
$ cd / etc / apache2 / sites-available /
Najskôr vytvorte nový konfiguračný súbor pre bob www.príklad1.com.konf nasledovne:
$ sudo nano www.príklad1.com.konf
Mal by sa otvoriť textový editor.
Teraz zadajte nasledujúce riadky.
Príklad názvu servera.comServerAlias www.príklad1.com
DocumentRoot "/ www / example1.com / www / public_html "
Možnosti -FollowSymLinks + MultiViews + indexy
AllowOverride všetko
Vyžadovať všetky udelené
ErrorLog "/ www / example1.com / www / logs / chyba.prihlásiť sa "
CustomLog "/ www / example1.com / www / logs / access.log “kombinovane
POZNÁMKA: Tučný text zmeňte podľa svojich požiadaviek.
Nakoniec konfiguračný súbor www.príklad.com.konf by mal vyzerať nasledovne. Stlačte
len skopírovať konfiguračný súbor pre bob (www.príklad1.com.konf) a urobte tak málo potrebných zmien.
Skopírujte konfiguračný súbor z bob pre alice a linda pomocou nasledujúcich príkazov:
$ sudo cp -v www.príklad1.com.konf www.príklad2.com.konf$ sudo cp -v www.príklad1.com.konf www.príklad3.com.konf
Teraz upravte konfiguračný súbor aplikácie alice nasledovne:
$ sudo nano www.príklad2.com.konf
Teraz zmeňte všetky výskyty súboru príklad1 do príklad2. Potom súbor uložte.
Robte to isté pre linda.
$ sudo nano www.príklad3.com.konf
Zmeniť všetky výskyty súboru príklad1 do príklad3 a uložte súbor.
Povolenie konfigurácií VirtualHost:
Teraz deaktivujte predvolenú konfiguráciu webových stránok Apache nasledovne:
$ sudo a2dissite 000-predvolené.konf
Teraz povoľte konfigurácie VirtualHost www.príklad1.com.konf, www.príklad2.com.konf, www.príklad3.com.konf nasledovne:
$ sudo a2ensite www.príklad1.com.konf www.príklad2.com.konf www.príklad3.com.konf
Nakoniec reštartujte službu Apache nasledovne:
$ sudo systemctl reštart apache2
Testovanie VirtualHosts:
Teraz skúste navštíviť webové stránky www.príklad1.com, www.príklad2.com, www.príklad3.com
Ako vidíte, všetky tieto webové stránky fungujú podľa očakávaní.
POZNÁMKA: Zmenil som predvolenú stránku index.html pre každú webovú stránku, takže pre každú webovú stránku sa to trochu líši kvôli účelu testovania. V opačnom prípade nebudete vedieť, či konfigurácia VirtualHost funguje alebo nie.
Takto teda nakonfigurujete Apache VirtualHost na Ubuntu 18 na základe názvu.04 LTS. Ďakujeme, že ste si prečítali tento článok.