Apache HTTP

Slik konfigurerer du Apache VirtualHost på Ubuntu 18.04 LTS

Slik konfigurerer du Apache VirtualHost på Ubuntu 18.04 LTS
Apache VirtualHost brukes til å kjøre flere nettsteder på samme Apache-server. Det er en fantastisk funksjon i Apache 2-webserveren for distribusjon av nettsteder med høy tetthet på en enkelt server. Apache har to typer VirtualHost-konfigurasjon, IP-basert VirtualHost og navnebasert VirtualHost.IP-basert VirtualHost: I IP-basert VirtualHost har en Apache-server flere IP-adresser, og den reagerer med forskjellige nettsteder basert på IP-adressen.

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å å fortsette.

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å + x etterfulgt av y og for å lagre filen.

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.com
ServerAlias ​​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 + x etterfulgt av y og for å lagre konfigurasjonsfilen.

å 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.

HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...
Hvordan bruke AutoKey til å automatisere Linux-spill
AutoKey er et desktopautomatiseringsverktøy for Linux og X11, programmert i Python 3, GTK og Qt. Ved å bruke skript og MACRO-funksjonalitet kan du aut...
Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...