Den här artikeln är en del av Apache Server Guide-serien:

  • Säkra Apache på Ubuntu - Del 1
  • Säkra Apache på Ubuntu - Del 2
  • Optimera Apache Performance - Del 1
  • Optimera Apache Performance - Del 2
  • Konfigurera namnbaserad Virtualhost Apache
  • Konfigurera IP och portbaserad Virtualhost i Apache
  • Så här ställer du in lösenordskyddswebbkatalogen i Apache
  • Ställa in Apache Server med SSL-support på Ubuntu
  • Konfigurera Fail2ban för att skydda Apache från ett DDOS-attack
  • Så här ställer du upp Webdav med Apache på Ubuntu
  • Övervaka Apache webbserver med Mod_status
  • Hur man skyddar mot DDoS med Mod_evasive på Apache Server

Virtual hosting är en metod för att värd flera webbplatser på en enda server. Det finns två typer av virtuell värd: Namnbaserad virtuell värd och IP-baserad virtuell värd. IP-baserad virtuell värd är en teknik för att tillämpa olika direktiv utifrån IP-adressen och porten som en begäran mottas den. Du kan tilldela en separat IP för varje domän på en enda server med IP-baserad virtuell värdning. Mestadels används detta för att vara värd för olika webbplatser på olika portar eller IP-adresser.

Här kommer vi att vara värd för "www.ipvhost1.com" på IP "192.168.1.227", "www.ipvhost2.com" på IP "192.168.1.228" och "www.portvhost.com" på IP "192.168.1.228" med port 8080.

Krav

  • OS: Ubuntu-server 14.04 med Apache installerad
  • IP-adress 1: 192.168.1.227
  • IP-adress2: 192.168.1.228
  • Domän: www.ipvhost1.com
  • Domän: www.ipvhost2.com
  • Domän: www.portvhost.com

Skapa flera IP-adresser på enstaka nätverksgränssnitt

För att installera IP-baserad virtuell värd måste du ha mer än en IP-adress tilldelad din Linux-maskin. Inställning av flera IP-adresser i ett enda nätverksgränssnitt kallas IP-aliasing. IP-aliasing är mycket användbar om du bara har ett nätverkskort.

För att göra detta måste du redigera filen "/ etc / network / interfaces".

 sudo nano / etc / network / interfaces 

Lägg till följande rader:

 auto eth0 iface eth0 inet statisk adress 192.168.1.227 nätmask 255.255.255.0 gateway 192.168.1.1 dns-nameserver 8.8.8.8 auto eth0: 1 iface eth0: 1 inet statisk adress 192.168.1.228 nätmask 255.255.255.0 

Spara och stäng filen och starta om nätverkstjänsten så att ändringarna träder i kraft.

 sudo /etc/init.d/networking starta om sudo ifup eth0: 1 

Ange flera instanser av Apache

Som standard lyssnar Apache på port 80. För portbaserad virtuell värd måste du berätta för Apache att lyssna på IP "192.168.1.227" och "192.168.1.228" på port 80 och IP "192.168.1.228" på port 8080.

För att konfigurera flera portar måste du redigera "/etc/apache2/ports.conf".

 sudo nano /etc/apache2/ports.conf 

Lägg till följande rad:

 Lyssna 192.168.1.227:80 Lyssna 192.168.1.228:80 Lyssna 192.168.1.228:8080 

Spara och stäng filen och starta om Apache för att få ändringarna att träda i kraft.

 sudo /etc/init.d/apache2 omstart 

Skapa virtuella kataloger

Först måste du skapa en katalogstruktur som håller webbsidorna. Den här katalogen är känd som DocumentRoot för domänen.

Skapa tre kataloger för webbplatser "www.ipvhost1.com", "www.ipvhost2.com" och "www.portvhost.com" under Apache standard DocumentRoot katalog.

 sudo mkdir -p /var/www/html/www.ipvhost1.com sudo mkdir -p /var/www/html/www.ipvhost2.com sudo mkdir -p /var/www/html/www.portvhost.com 

Skapa testwebbsidor för varje virtuell värd

Skapa en "index.html" -fil för varje webbplats som identifierar specifika IP-adresser och portar.

Skapa en index.html-fil för "www.ipvhost1.com" virtuell värd.

 sudo nano /var/www/html/www.ipvhost1.com/index.html 

Lägg till följande innehåll.

 www.ipvhost1.com 

Spara och stäng filen när du är klar.

Skapa en "index.html" -fil för "www.ipvhost2.com" virtuell värd.

 sudo nano /var/www/html/www.ipvhost2.com/index.html 

Lägg till följande innehåll.

 www.ipvhost2.com 

Spara och stäng filen när du är klar.

Skapa en "index.html" -fil för "www.portvhost.com" virtuell värd.

 sudo nano /var/www/html/www.portvhost.com/index.html 

Lägg till följande innehåll.

 www.portvhost.com 

Spara och stäng filen när du är klar.

Ställa in äganderätt och behörigheter

Som standard kör Apache-tjänsten som en "www-data" -användare i Ubuntu. Du måste ändra ägandet av dessa tre virtuella kataloger till "www-data" så att Apache kan läsa och skriva data.

För att göra detta kör du:

 sudo chown -R www-data: www-data /var/www/html/www.ipvhost1.com sudo chown -R www-data: www-data /var/www/html/www.ipvhost2.com sudo chown -R www-data: www-data /var/www/html/www.portvhost.com 

Du måste också se till att Apache webbrot (/ var / www / html) katalogen är läsbar så att alla kan läsa filer från den.

 sudo chmod-R 755 / var / www / html 

Skapa virtuella värdfiler

Som standard kommer Apache med en standard virtuell värdfil kallad "000-default.conf". Du måste inaktivera den här virtuella värdfilen först.

För att göra detta, kör följande kommando.

 sudo a2dissite 000-default.conf 

Nästa steg är att skapa en virtuell värdkonfigurationsfil för varje webbplats. Namnet på varje konfigurationsfil måste sluta med ".conf".

Skapa en virtuell värdfil för webbplatsen "www.ipvhost1.com".

 sudo nano /etc/apache2/sites-available/www.ipvhost1.com.conf 

Lägg till följande innehåll.

 ServerAdmin [email protected] Servernamn www.ipvhost1.com DocumentRoot /var/www/html/www.ipvhost1.com ErrorLog $ {APACHE_LOG_DIR} /www.ipvhost1.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.ipvhost1.com_access. log kombinerad 

Spara och stäng filen.

Skapa en virtuell värdfil för webbplatsen "www.ipvhost2.com".

 sudo nano /etc/apache2/sites-available/www.ipvhost2.com.conf 

Lägg till följande innehåll.

 ServerAdmin [email protected] Servernamn www.ipvhost2.com DocumentRoot /var/www/html/www.ipvhost2.com ErrorLog $ {APACHE_LOG_DIR} /www.ipvhost2.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.ipvhost2.com_access. log kombinerad 

Spara och stäng filen.

Skapa en virtuell värdfil för webbplatsen "www.portvhost.com".

 sudo nano /etc/apache2/sites-available/www.portvhost.com.conf 

Lägg till följande innehåll.

 ServerAdmin [email protected] Servernamn www.portvhost.com DocumentRoot /var/www/html/www.portvhost.com ErrorLog $ {APACHE_LOG_DIR} /www.portvhost.com_error.log CustomLog $ {APACHE_LOG_DIR} /www.portvhost.com_access. log kombinerad 

Spara och stäng filen.

Efter att ha skapat de virtuella värdfilerna måste du aktivera de virtuella värdarna.

Du kan göra detta genom att springa.

 sudo a2ensite www.ipvhost1.com.conf sudo a2ensite www.ipvhost2.com.conf sudo a2ensite www.portvhost.com.conf 

Slutligen starta om Apache-tjänsten.

 sudo /etc/init.d/apache2 omstart 

Testa virtuella värdar

Nu är det dags att testa IP Virtualhost. Öppna en webbläsare på en dator och navigera till webbadresser "http://192.168.1.227:80" och "http://192.168.1.228:80". Du bör se exempel på demo-sidor för IP-baserad virtuell värd som ser ut så här:

På samma sätt, för att testa Port Virtualhost, öppna din webbläsare och navigera till URL "http://192.168.1.228:8080". Du bör se en provdemosida för portbaserad virtuell värd som ser ut så här:

Slutsats

I det här inlägget visade jag steg-för-steg-proceduren för att skapa och aktivera en IP-baserad och portbaserad virtuell värd på Apache webbserver. Du kan enkelt skapa flera domäner på samma server.