Fig 1: Apache IP-baserad VirtualHost.
Namnbaserad VirtualHost: I namnbaserade VirtualHost har en Apache-server en enda IP-adress och flera domännamn konfigurerade för varje webbplats. I en DNS-server tilldelas vart och ett av dessa domännamn IP-adressen till Apache-servern. Beroende på vilket domännamn klienten använde returnerar servern olika webbplatser.
Fig 2: Apache-namn baserat VirtualHost.
I den här artikeln ska jag visa dig hur du konfigurerar det Apache-namnbaserade VirtualHost. Jag kommer att använda Ubuntu 18.04 LTS för demonstrationen. Men det borde fungera på alla moderna Linux-distributioner med liten eller ingen förändring. Så, låt oss komma igång.
Installera Apache 2-webbservern:
Apache 2 webbserver finns i det officiella paketförvaret för Ubuntu 18.04 LTS. Så du kan enkelt installera det med APT-pakethanteraren.
Uppdatera först APT-paketets förvarscache med följande kommando:
$ sudo apt uppdatering
Kör nu följande kommando för att installera Apache 2-webbservern:
$ sudo apt installera apache2
Nu, tryck y och tryck sedan på
Apache 2-webbservern ska installeras.
Konfigurera DNS:
Nu måste du konfigurera DNS-servern för att mappa domännamnen som du vill använda för VirtualHost till IP-adressen till din Apache-server.
Du hittar IP-adressen till din Apache-server med följande kommando:
$ ip a | egrep "inet"Som du kan se är IP-adressen i mitt fall 192.168.21.166. Det kommer att vara annorlunda för dig. Så se till att ersätta den med din från och med nu.
Om du vill lära dig hur du konfigurerar Apache VirtualHost lokalt kan du använda / etc / värdar fil för lokal DNS / namnupplösning.
För att konfigurera lokal DNS-upplösning, öppna / etc / värdar fil med nano som följer:
$ sudo nano / etc / hosts
Lägg nu till raden som markerad på skärmdumpen nedan till filen. Tryck sedan på
Nu bör lokal namnupplösning fungera.
Katalogstrukturer:
Jag vill behålla alla webbplatsdata för min Apache VirtualHost i en specifik katalog / www. Här vill jag skapa en katalog för varje användare. Varje användare kommer att ha sin egen public_html / och loggar / katalog också.
Till exempel för 3 användare bob (exempel1.com), alice (exempel2.com), linda (exempel 3.com), katalogstrukturen är som följer:
/ www- exempel1.com /
- www /
- public_html /
- index.html
- loggar /
- exempel2.com /
- www /
- public_html /
- index.html
- loggar /
- exempel3.com /
- www /
- public_html /
- index.html
- loggar /
Ett enkelt sätt att göra det är att skapa en mall eller skelettkatalog och placera katalogstrukturen där. Skapa sedan varje användare med denna skelettkatalog.
Kopiera först innehållet i standardskelettkatalogen / etc / skel till en annan katalog / etc / skel-www som följer:
$ sudo cp -rv / etc / skel / etc / skel-www
Navigera nu till den nya skelettkatalogen enligt följande:
$ cd / etc / skel-www
Skapa sedan önskad katalogstruktur inuti skelettkatalogen enligt följande:
$ sudo mkdir -p www / public_html, logs
Du kan också skapa en standard index.html filen i public_html / katalog om du vill.
$ echo "Det fungerar
"| sudo tee www / public_html / index.html
Skapa nu / www katalog med följande kommando:
$ sudo mkdir / www
Skapa användare:
Nu kan du skapa användaren guppa för www.exempel1.com enligt följande:
$ sudo useradd --create-home --home-dir / www / exempel1.com - skal/ bin / bash --gid www-data --skel / etc / skel-www bob
På samma sätt, skapa användaren alice för www.exempel2.com enligt följande:
$ sudo useradd --create-home --home-dir / www / exempel2.com - skal / bin / bash--gid www-data --skel / etc / skel-www alice
Skapa återigen användarlinda för www.exempel3.com enligt följande:
$ sudo useradd --create-home --home-dir / www / exempel3.com - skal / bin / bash--gid www-data --skel / etc / skel-www linda
Här tilldelade jag den primära gruppen för varje användare www-data. Som standard körs Apache-servern som den här gruppen. Om jag inte hade gjort det kommer inte Apache-servern att kunna komma åt filerna i public_html / katalog och skapa loggfiler i loggar / katalog.
Konfigurera Apache VirtualHost:
Nu är du redo att konfigurera Apache VirtualHost för 3 användare guppa (www.exempel1.com), alice (www.exempel2.com) och Linda (www.exempel3.com).
Standard Apache-webbplatsens konfigurationskatalog på Ubuntu är / etc / apache2 / platser-tillgängliga.
Navigera nu till katalogen / etc / apache2 / platser-tillgängliga / som följer.
$ cd / etc / apache2 / sites-available /
Skapa först en ny konfigurationsfil för bob www.exempel1.com.konf som följer:
$ sudo nano www.exempel1.com.konf
En textredigerare bör öppnas.
Skriv nu in följande rader.
ServerName-exempel 1.comServerAlias www.exempel1.com
DocumentRoot "/ www / exempel1.com / www / public_html "
Alternativ -FöljSymLinks + MultiViews + Index
AllowOverride all
Kräv alla beviljade
ErrorLog "/ www / exempel1.com / www / logs / error.logga"
CustomLog "/ www / exempel1.com / www / logs / access.log "kombinerad
OBS: Ändra fetstil efter dina krav.
Slutligen konfigurationsfilen www.exempel.com.konf ska se ut enligt följande. Tryck
att bara kopiera konfigurationsfilen för guppa (www.exempel1.com.konf) och gör vilka små förändringar som krävs.
Kopiera konfigurationsfilen till guppa för alice och Linda med följande kommandon:
$ sudo cp -v www.exempel1.com.conf www.exempel2.com.konf$ sudo cp -v www.exempel1.com.conf www.exempel3.com.konf
Redigera nu konfigurationsfilen för alice som följer:
$ sudo nano www.exempel2.com.konf
Ändra nu alla förekomster av exempel1 till exempel2. Spara sedan filen.
Gör samma sak för Linda.
$ sudo nano www.exempel3.com.konf
Ändra alla förekomster av exempel1 till exempel3 och spara filen.
Aktivera VirtualHost-konfigurationer:
Inaktivera nu Apache-standardwebbplatskonfigurationen enligt följande:
$ sudo a2dissite 000-standard.konf
Aktivera nu VirtualHost-konfigurationerna www.exempel1.com.konf, www.exempel2.com.konf, www.exempel3.com.konf som följer:
$ sudo a2ensite www.exempel1.com.conf www.exempel2.com.conf www.exempel3.com.konf
Slutligen starta om Apache-tjänsten enligt följande:
$ sudo systemctl starta om apache2
Testa VirtualHosts:
Försök nu komma åt webbplatserna www.exempel1.com, www.exempel2.com, www.exempel3.com
Som du kan se fungerar alla dessa webbplatser som förväntat.
NOTERA: Jag ändrade standardsidan index.html för varje webbplats så att det är lite annorlunda för varje webbplats för teständamål. Annars kommer du inte att kunna berätta om VirtualHost-konfigurationen fungerar eller inte.
Så det är så du konfigurerar namnbaserat Apache VirtualHost på Ubuntu 18.04 LTS. Tack för att du läste den här artikeln.