Fig 1: Apache IP-baseret VirtualHost.
Navnbaseret VirtualHost: I navnebaseret VirtualHost har en Apache-server en enkelt IP-adresse og flere domænenavne konfigureret til hvert websted. I en DNS-server tildeles hvert af disse domænenavne IP-adressen til Apache-serveren. Afhængigt af hvilket domænenavn klienten brugte, returnerer serveren forskellige websteder.
Fig 2: Apache navn baseret VirtualHost.
I denne artikel vil jeg vise dig, hvordan du konfigurerer det Apache-navnbaserede VirtualHost. Jeg bruger Ubuntu 18.04 LTS til demonstrationen. Men det skal fungere på enhver moderne Linux-distribution med ringe eller ingen ændringer. Så lad os komme i gang.
Installation af Apache 2-webserver:
Apache 2 webserver er tilgængelig i det officielle pakkeopbevaringssted for Ubuntu 18.04 LTS. Så du kan nemt installere det med APT-pakkehåndteringen.
Opdater først APT-pakkeopbevaringscachen med følgende kommando:
$ sudo apt opdatering
Kør nu følgende kommando for at installere Apache 2 webserver:
$ sudo apt installere apache2
Nu skal du trykke på y og tryk derefter på
Apache 2-webserveren skal installeres.
Konfiguration af DNS:
Nu skal du konfigurere DNS-serveren til at kortlægge de domænenavne, du vil bruge til VirtualHost, til IP-adressen på din Apache-server.
Du kan finde IP-adressen på din Apache-server med følgende kommando:
$ ip a | egrep "inet"Som du kan se, er IP-adressen i mit tilfælde 192.168.21.166. Det vil være anderledes for dig. Så sørg for at erstatte den med din fra nu af.
Hvis du vil lære at konfigurere Apache VirtualHost lokalt, kan du bruge / etc / hosts fil til lokal DNS / navn opløsning.
For at konfigurere lokal DNS-opløsning skal du åbne / etc / hosts fil med nano som følger:
$ sudo nano / etc / hosts
Tilføj nu linjen som markeret i skærmbilledet nedenfor til filen. Tryk derefter på
Nu skal lokal navneløsning fungere.
Katalogstrukturer:
Jeg vil opbevare alle webstedsdataene for min Apache VirtualHost i et bestemt bibliotek / www. Her vil jeg oprette en mappe til hver bruger. Hver bruger vil have sin egen offentlig_html / og logs / bibliotek også.
For eksempel til 3 brugere bob (eksempel1.com), alice (eksempel2.com), linda (eksempel 3.com), katalogstrukturen er som følger:
/ www- eksempel1.com /
- www /
- offentlig_html /
- indeks.html
- logs /
- eksempel2.com /
- www /
- offentlig_html /
- indeks.html
- logs /
- eksempel3.com /
- www /
- offentlig_html /
- indeks.html
- logs /
En nem måde at gøre det på er at oprette en skabelon eller skeletmappe og placere katalogstrukturen der. Opret derefter hver bruger ved hjælp af dette skeletmappe.
Kopier først indholdet af standardskeletmappen / etc / skel til en anden mappe / etc / skel-www som følger:
$ sudo cp -rv / etc / skel / etc / skel-www
Naviger nu til den nye skeletmappe som følger:
$ cd / etc / skel-www
Opret derefter den ønskede katalogstruktur inde i skeletmappen som følger:
$ sudo mkdir -p www / public_html, logs
Du kan også oprette en standard indeks.html fil i offentlig_html / bibliotek, hvis du vil.
$ echo "Det virker
"| sudo tee www / public_html / index.html
Opret nu / www bibliotek med følgende kommando:
$ sudo mkdir / www
Oprettelse af brugere:
Nu kan du oprette brugeren bob til www.eksempel1.com som følger:
$ sudo useradd --create-home --home-dir / www / eksempel1.com - skal/ bin / bash --gid www-data --skel / etc / skel-www bob
På samme måde skal du oprette brugeren Alice til 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
Opret igen brugerlinda til 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 gruppe for hver bruger til www-data. Som standard kører Apache-serveren som denne gruppe. Hvis jeg ikke havde gjort det, kunne Apache-serveren ikke få adgang til filerne i offentlig_html / mappe og oprette logfiler i logs / vejviser.
Konfiguration af Apache VirtualHost:
Nu er du klar til at konfigurere Apache VirtualHost til 3 brugere bob (www.eksempel1.com), Alice (www.eksempel2.com) og Linda (www.eksempel3.com).
Standard Apache-websteds konfigurationsmappe på Ubuntu er / etc / apache2 / sites-tilgængelig.
Gå nu til biblioteket / etc / apache2 / sites-tilgængelige / som følger.
$ cd / etc / apache2 / sites-tilgængelig /
Opret først en ny konfigurationsfil til bob www.eksempel1.com.konf som følger:
$ sudo nano www.eksempel1.com.konf
En teksteditor skal åbnes.
Skriv nu de følgende linjer.
Eksempel på servernavn1.comServerAlias www.eksempel1.com
DocumentRoot "/ www / eksempel1.com / www / public_html "
Indstillinger -FølgSymLinks + MultiViews + Indekser
Tillad Overstyr alt
Kræv alle tildelte
ErrorLog "/ www / eksempel1.com / www / logs / error.log "
CustomLog "/ www / eksempel1.com / www / logs / adgang.log "kombineret
BEMÆRK: Skift de fed skrift i henhold til dine krav.
Endelig konfigurationsfilen www.eksempel.com.konf skal se ud som følger. Trykke
at bare kopiere konfigurationsfilen til bob (www.eksempel1.com.konf) og foretag de små ændringer, der kræves.
Kopier konfigurationsfilen 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 nu konfigurationsfilen til Alice som følger:
$ sudo nano www.eksempel2.com.konf
Nu skal du ændre alle forekomster af eksempel1 til eksempel2. Gem derefter filen.
Gør det samme for Linda.
$ sudo nano www.eksempel3.com.konf
Skift alle forekomster af eksempel1 til eksempel3 og gem filen.
Aktivering af VirtualHost-konfigurationer:
Deaktiver nu Apache-standardwebsite-konfigurationen som følger:
$ sudo a2dissite 000-standard.konf
Aktiver nu VirtualHost-konfigurationerne 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 sidst skal du genstarte Apache-tjenesten som følger:
$ sudo systemctl genstart apache2
Test af VirtualHosts:
Prøv nu at få adgang til webstederne www.eksempel1.com, www.eksempel2.com, www.eksempel3.com
Som du kan se, fungerer alle disse websteder som forventet.
BEMÆRK: Jeg ændrede standardsiden indeks.html for hvert websted, så det er lidt forskelligt for hvert websted til testformål. Ellers kan du ikke fortælle, om VirtualHost-konfiguration fungerer eller ej.
Så det er sådan, du konfigurerer navnebaseret Apache VirtualHost på Ubuntu 18.04 LTS. Tak, fordi du læste denne artikel.