Apache HTTP

Sådan konfigureres Apache VirtualHost på Ubuntu 18.04 LTS

Sådan konfigureres Apache VirtualHost på Ubuntu 18.04 LTS
Apache VirtualHost bruges til at køre flere websteder på den samme Apache-server. Det er en fantastisk funktion i Apache 2-webserveren til højdensitetsimplementering af websteder på en enkelt server. Apache har to typer VirtualHost-konfiguration, IP-baseret VirtualHost og navnebaseret VirtualHost.IP-baseret VirtualHost: I IP-baseret VirtualHost har en Apache-server flere IP-adresser, og den reagerer med forskellige websteder baseret på IP-adressen.

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å at fortsætte.

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å + x efterfulgt af y og for at gemme filen.

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.com
ServerAlias ​​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 + x efterfulgt af y og for at gemme konfigurationsfilen.

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.

Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...
Sådan vises OSD-overlay i fuldskærms Linux-apps og -spil
Afspilning af fuldskærmsspil eller brug af apps i distraktionsfri fuldskærmstilstand kan afskære dig fra relevante systemoplysninger, der er synlige i...
Top 5 spiloptagelseskort
Vi har alle set og elsket streaming af gameplay på YouTube. PewDiePie, Jakesepticye og Markiplier er kun nogle af de bedste spillere, der har tjent mi...