Apache HTTP

Så här konfigurerar du Apache VirtualHost på Ubuntu 18.04 LTS

Så här konfigurerar du Apache VirtualHost på Ubuntu 18.04 LTS
Apache VirtualHost används för att köra flera webbplatser på samma Apache-server. Det är en fantastisk funktion i Apache 2-webbservern för högdensitetsdistribution av webbplatser på en enda server. Apache har två typer av VirtualHost-konfiguration, IP-baserad VirtualHost och namnbaserad VirtualHost.IP-baserad VirtualHost: I IP-baserad VirtualHost har en Apache-server flera IP-adresser och den svarar med olika webbplatser baserat på IP-adressen.

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å att fortsätta.

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å + x följd av y och för att spara filen.

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.com
ServerAlias ​​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 + x följt av y och för att spara konfigurationsfilen.

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.

Bästa spelkonsolemulatorer för Linux
Den här artikeln listar populära spelkonsolemuleringsprogram som finns tillgängliga för Linux. Emulation är ett mjukvarukompatibilitetsskikt som emule...
Bästa Linux Distros för spel 2021
Linux-operativsystemet har kommit långt från sitt ursprungliga, enkla, serverbaserade utseende. Detta operativsystem har förbättrats enormt de senaste...
Hur du fångar och strömmar din spelsession på Linux
Tidigare betraktades spel bara som en hobby, men med tiden såg spelindustrin en enorm tillväxt när det gäller teknik och antalet spelare. Spelpubliken...