Fig 1: Apache IP-basert VirtualHost.
Navnbasert VirtualHost: I navnebasert VirtualHost har en Apache-server en enkelt IP-adresse og flere domenenavn konfigurert for hvert nettsted. I 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 navn basert 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 Web Server:
Apache 2 webserver er tilgjengelig i det offisielle pakkelageret til Ubuntu 18.04 LTS. Så du kan enkelt installere det med APT-pakkebehandleren.
Oppdater først APT-pakkelagerbufferen med følgende kommando:
$ sudo apt oppdatering
Kjør nå følgende kommando for å installere Apache 2 webserver:
$ sudo apt installere apache2
Trykk nå y og trykk deretter på
Apache 2-webserveren skal installeres.
Konfigurere DNS:
Nå må du konfigurere DNS-serveren til å kartlegge domenenavnene du vil bruke for VirtualHost til IP-adressen til Apache-serveren din.
Du finner IP-adressen til Apache-serveren din med følgende kommando:
$ ip a | egrep "inet"Som du kan se, 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 / navn oppløsning.
For å konfigurere lokal DNS-oppløsning, åpne / etc / verter fil med nano som følger:
$ sudo nano / etc / hosts
Legg nå til linjen som markert i skjermbildet nedenfor til filen. Trykk deretter på
Nå bør lokal navneløsning fungere.
Katalogstrukturer:
Jeg vil ha alle nettsteddataene til Apache VirtualHost i en bestemt katalog / www. Her vil jeg lage en katalog for hver bruker. Hver bruker vil ha sin egen offentlig_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:
/ www- eksempel1.com /
- www /
- offentlig_html /
- indeks.html
- tømmerstokker/
- eksempel2.com /
- www /
- offentlig_html /
- indeks.html
- tømmerstokker/
- eksempel3.com /
- www /
- offentlig_html /
- indeks.html
- tømmerstokker/
En enkel måte å gjøre det på er å lage en mal- eller skjelettkatalog og plassere katalogstrukturen der. Opprett deretter hver bruker ved hjelp av denne skjelettkatalogen.
Kopier først innholdet i standard skjelettkatalog / etc / skel til en annen katalog / etc / skel-www som følger:
$ sudo cp -rv / etc / skel / etc / skel-www
Gå nå til den nye skjelettkatalogen som følger:
$ cd / etc / skel-www
Opprett deretter ønsket katalogstruktur inne i skjelettkatalogen som følger:
$ sudo mkdir -p www / public_html, logs
Du kan også opprette en standard indeks.html filen i offentlig_html / katalog hvis du vil.
$ echo "Det fungerer
"| sudo tee www / public_html / index.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 / example1.com - skall/ bin / bash --gid www-data --skel / etc / skel-www bob
På samme måte, opprett brukeren alice for www.eksempel2.com som følger:
$ sudo useradd --create-home --home-dir / www / example2.com - shell / bin / bash--gid www-data --skel / etc / skel-www alice
Igjen, opprett brukerlinda for www.eksempel3.com som følger:
$ sudo useradd --create-home --home-dir / www / example3.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-serveren som denne gruppen. Hvis jeg ikke hadde gjort det, vil ikke Apache-serveren få tilgang til filene i offentlig_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-nettstedskonfigurasjonskatalog på Ubuntu er / etc / apache2 / nettsteder tilgjengelig.
Gå nå til katalogen / etc / apache2 / nettsteder tilgjengelig / som følger.
$ cd / etc / apache2 / nettsteder-tilgjengelig /
Først oppretter du en ny konfigurasjonsfil for bob www.eksempel1.com.konf som følger:
$ sudo nano www.eksempel1.com.konf
En tekstredigerer bør åpnes.
Skriv inn følgende linjer.
ServerName-eksempel 1.comServerAlias www.eksempel1.com
DocumentRoot "/ www / eksempel1.no / www / public_html "
Alternativer -FølgSymLinks + MultiViews + Indekser
Tillat Overstyr alt
Krever alt gitt
ErrorLog "/ www / eksempel1.com / www / logs / error.Logg"
CustomLog "/ www / eksempel1.no / www / logger / tilgang.logg "kombinert
MERKNAD: Endre de fet skriftene i henhold til dine krav.
Til slutt konfigurasjonsfilen www.eksempel.com.konf skal se slik ut. trykk
å bare kopiere konfigurasjonsfilen for bob (www.eksempel1.com.konf) og gjør de små endringene som kreves.
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 som følger:
$ 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.
Aktivere VirtualHost-konfigurasjoner:
Deaktiver nå Apache-standardwebsidekonfigurasjonen som følger:
$ sudo a2dissite 000-standard.konf
Aktiver nå VirtualHost-konfigurasjonene www.eksempel1.com.konf, www.eksempel2.com.konf, www.eksempel3.com.konf som følger:
$ sudo a2ensite www.eksempel1.com.conf www.eksempel2.com.conf www.eksempel3.com.konf
Til slutt starter du Apache-tjenesten på nytt som følger:
$ sudo systemctl start apache2 på nytt
Testing VirtualHosts:
Nå kan du prøve å få tilgang til nettstedene www.eksempel1.com, www.eksempel2.com, www.eksempel3.com
Som du kan se, fungerer alle disse nettstedene som forventet.
MERK: Jeg endret standardsiden indeks.html for hvert nettsted, slik at det er litt annerledes for hvert nettsted for testformål. Ellers vil du ikke kunne fortelle om VirtualHost-konfigurasjonen fungerer eller ikke.
Så det er slik du konfigurerer navnebasert Apache VirtualHost på Ubuntu 18.04 LTS. Takk for at du leser denne artikkelen.