Fig 1: Apache IP -basert virtualhost.
Navnbasert VirtualHost: I navnbasert VirtualHost har en Apache -server en enkelt IP -adresse og flere domenenavn konfigurert for hvert nettsted. På en DNS -server tildeles hvert av disse domenenavnene IP -adressen til Apache -serveren. Avhengig av hvilket domenenavn klienten brukte, returnerer serveren forskjellige nettsteder.
Fig 2: Apache Navnbasert VirtualHost.
I denne artikkelen skal jeg vise deg hvordan du konfigurerer Apache -navnet Basert VirtualHost. Jeg skal bruke Ubuntu 18.04 LTS for demonstrasjonen. Men det skal fungere på enhver moderne Linux -distribusjon med liten eller ingen endring. Så la oss komme i gang.
Installere Apache 2 webserver:
Apache 2 webserver er tilgjengelig i det offisielle pakkelageret til Ubuntu 18.04 LTS. Så du kan enkelt installere den med Apt Package Manager.
Oppdater først Apt Package Repository Cache med følgende kommando:
$ sudo apt oppdatering
Kjør nå følgende kommando for å installere Apache 2 webserver:
$ sudo apt install Apache2
Nå, trykk y Og trykk deretter å fortsette.
Apache 2 webserver skal installeres.
Konfigurere DNS:
Nå må du konfigurere DNS -serveren for å kartlegge domenenavnene du vil bruke for VirtualHost til IP -adressen til Apache -serveren din.
Du kan finne IP -adressen til Apache -serveren din med følgende kommando:
$ ip a | Egrep "inet"
Som du ser er IP -adressen i mitt tilfelle 192.168.21.166. Det vil være annerledes for deg. Så sørg for å erstatte den med din fra nå av.
Hvis du vil lære hvordan du konfigurerer Apache VirtualHost lokalt, kan du bruke /etc/verter fil for lokal DNS/navnoppløsning.
For å konfigurere lokal DNS -oppløsning, åpne /etc/verter fil med Nano følgende:
$ sudo nano /etc /verter
Legg nå linjen som merket i skjermbildet nedenfor i filen. Trykk deretter + x etterfulgt av y og For å lagre filen.
Nå skal lokal navnoppløsning fungere.
Katalogstrukturer:
Jeg vil beholde alle nettsteddataene til Apache VirtualHost i en spesifikk katalog /www. Her vil jeg opprette en katalog for hver bruker. Hver bruker vil ha sin egen public_html/ og tømmerstokker/ Katalog også.
For eksempel for 3 brukere Bob (eksempel1.com), Alice (eksempel2.com), Linda (eksempel3.com), Katalogstrukturen er som følger:
/wwwEn enkel måte å gjøre det på er å lage en mal- eller skjelettkatalog og sette katalogstrukturen der. Opprett deretter hver brukere ved hjelp av denne skjelettkatalogen.
Først, kopier innholdet i standard skjelettkatalog /etc/Skel til en annen katalog /etc/skel-www følgende:
$ sudo cp -rv /etc /skel /etc /skel -www
Naviger nå til den nye skjelettkatalogen som følger:
$ cd /etc /skel-www
Opprett deretter ønsket katalogstruktur i skjelettkatalogen som følger:
$ sudo mkdir -p www/public_html, logs
Du kan også opprette en standard indeks.html fil i public_html/ katalog hvis du vil.
$ ekko "Det fungerer
"| sudo tee www/public_html/indeks.html
Lag nå /www Katalog med følgende kommando:
$ sudo mkdir /www
Opprette brukere:
Nå kan du opprette brukeren Bob for www.Eksempel1.com som følger:
$ sudo useradd-create-home--home-dir /www /eksempel1.com -shell
/bin/bash --gid www-data--shel/etc/skel-www bob
På samme måte, opprette brukeren Alice for www.Eksempel2.com som følger:
$ sudo useradd-create-home--home-dir /www /eksempel2.com -shell /bin /bash
--Gid www-data--Skel /etc /Skel-Www Alice
Igjen, lag brukeren Linda for www.Eksempel3.com som følger:
$ sudo useradd-create-home--home-dir /www /eksempel3.com -shell /bin /bash
--Gid www-data--Skel /etc /skel-www linda
Her tildelte jeg den primære gruppen til hver bruker å www-data. Som standard kjører Apache Server som denne gruppen. Hvis jeg ikke hadde gjort det, vil Apache Server ikke kunne få tilgang til filene i public_html/ katalog og opprette loggfiler i tømmerstokker/ katalog.
Konfigurere Apache VirtualHost:
Nå er du klar til å konfigurere Apache VirtualHost for 3 brukere Bob (www.Eksempel1.com), Alice (www.Eksempel2.com) og Linda (www.Eksempel3.com).
Standard Apache Site Configuration Directory på Ubuntu er /etc/apache2/nettsteder tilgjengelig.
Naviger nå til katalogen /etc/apache2/nettsteder tilgjengelig/ følgende.
$ cd/etc/apache2/nettsteder-tilgjengelig/
Lag først en ny konfigurasjonsfil for Bob www.Eksempel1.com.konf følgende:
$ sudo nano www.Eksempel1.com.konf
En tekstredigerer bør åpnes.
Nå, skriv inn følgende linjer.
Servernavn eksempel1.com
Serveralias www.Eksempel1.com
Documentroot "/www/Eksempel1.com/www/public_html "
Alternativer -Følger Symlinks +Multiviews +Indekser
TillatRide alle
Krever alt gitt
Errorlog "/www/eksempel1.com/www/logger/feil.Logg"
CustomLog "/www/eksempel1.com/www/logger/tilgang.logg "kombinert
Merk: Endre dristige tekster i henhold til kravet ditt.
Endelig konfigurasjonsfilen www.eksempel.com.konf skal se ut som følger. trykk + x etterfulgt av y og For å lagre konfigurasjonsfilen.
å bare kopiere konfigurasjonsfilen for Bob (www.Eksempel1.com.konf) og gjør det som er nødvendige med små endringer.
Kopier konfigurasjonsfilen til Bob til Alice og Linda med følgende kommandoer:
$ sudo cp -v www.Eksempel1.com.Conf www.Eksempel2.com.konf
$ sudo cp -v www.Eksempel1.com.Conf www.Eksempel3.com.konf
Rediger nå konfigurasjonsfilen til Alice følgende:
$ sudo nano www.Eksempel2.com.konf
Nå, endre alle forekomster av Eksempel1 til Eksempel2. Lagre deretter filen.
Gjør det samme for Linda.
$ sudo nano www.Eksempel3.com.konf
Endre alle forekomster av Eksempel1 til Eksempel3 og lagre filen.
Aktivering av VirtualHost -konfigurasjoner:
Deaktiver nå Apache Standard nettstedskonfigurasjon som følger:
$ sudo a2dissite 000-default.konf
Aktiver VirtualHost -konfigurasjonene nå www.Eksempel1.com.konf, www.Eksempel2.com.konf, www.Eksempel3.com.konf følgende:
$ sudo a2ensite www.Eksempel1.com.Conf www.Eksempel2.com.Conf www.Eksempel3.com.konf
Til slutt, start Apache -tjenesten på nytt som følger:
$ sudo SystemCTL Restart Apache2
Prøv nå å få tilgang til nettstedene www.Eksempel1.com, www.Eksempel2.com, www.Eksempel3.com
Som du ser fungerer alle disse nettstedene som forventet.
MERK: Jeg endret standardsiden indeks.html for hvert nettsteder slik at det er litt annerledes for hvert nettsted for å teste formål. Ellers vil du ikke kunne fortelle om VirtualHost -konfigurasjon fungerer eller ikke.
Så det er slik du konfigurerer navnbasert Apache VirtualHost på Ubuntu 18.04 LTS. Takk for at du leste denne artikkelen.