Dit artikel maakt deel uit van de Apache Server Guide-serie:

  • Apache beveiligen op Ubuntu - Deel 1
  • Apache beveiligen op Ubuntu - Deel 2
  • Apache-prestaties optimaliseren - deel 1
  • Apache-prestaties optimaliseren - deel 2
  • Op naam gebaseerde Virtualhost Apache instellen
  • IP en op poorten gebaseerde Virtualhost instellen in Apache
  • Hoe de wachtwoordbeveiliging van de webdirectory in Apache in te stellen
  • Apache-server instellen met SSL-ondersteuning op Ubuntu
  • Fail2ban instellen om Apache te beschermen tegen een DDOS-aanval
  • Hoe Webdav instellen met Apache op Ubuntu
  • Controleer Apache Web Server met Mod_status
  • Hoe te beschermen tegen DDoS met Mod_evasive op Apache Server

Virtuele hosting is een methode voor het hosten van meerdere websites op één server. Er zijn twee soorten virtuele hosting: op naam gebaseerde virtuele hosting en op IP gebaseerde virtuele hosting. IP-gebaseerde virtuele hosting is een techniek om verschillende richtlijnen toe te passen op basis van het IP-adres en de poort waarop een verzoek wordt ontvangen. U kunt voor elk domein op elke server een apart IP-adres toewijzen met IP-gebaseerde virtuele hosting. Meestal wordt dit gebruikt om verschillende websites te hosten op verschillende poorten of IP's.

Hier gaan we "www.ipvhost1.com" onderbrengen op IP "192.168.1.227", "www.ipvhost2.com" op IP "192.168.1.228" en "www.portvhost.com" op IP "192.168.1.228" met poort 8080.

Vereisten

  • Besturingssysteem: Ubuntu-server 14.04 met geïnstalleerde Apache
  • IP-adres1: 192.168.1.227
  • IP-adres2: 192.168.1.228
  • Domein: www.ipvhost1.com
  • Domein: www.ipvhost2.com
  • Domein: www.portvhost.com

Maak meerdere IP-adressen op één netwerkinterface

Om IP-gebaseerde virtuele hosting in te stellen, moet u meer dan één IP-adres toegewezen hebben aan uw Linux-machine. Het instellen van meerdere IP-adressen op een enkele netwerkinterface heet IP-aliasing. IP-aliasing is erg handig als u slechts één netwerkinterfacekaart hebt.

Om dit te doen, moet je het bestand "/ etc / network / interfaces" bewerken.

 sudo nano / etc / network / interfaces 

Voeg de volgende regels toe:

 auto eth0 iface eth0 inet static address 192.168.1.227 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 auto eth0: 1 iface eth0: 1 inet static address 192.168.1.228 netmask 255.255.255.0 

Sla het bestand op en sluit het en start de netwerkdienst opnieuw om deze wijzigingen door te voeren.

 sudo /etc/init.d/networking restart sudo ifup eth0: 1 

Meerdere exemplaren van Apache instellen

Standaard luistert Apache op poort 80. Voor poortgebaseerde virtuele hosting moet je Apache laten weten dat het naar IP "192.168.1.227" en "192.168.1.228" op poort 80 en IP "192.168.1.228" op poort 8080 luistert.

Om meerdere poorten in te stellen, moet je "/etc/apache2/ports.conf" bewerken.

 sudo nano /etc/apache2/ports.conf 

Voeg de volgende regel toe:

 Luister 192.168.1.227: 180 Luister 192.168.1.228:80 Luister 192.168.1.228:8080 

Sla het bestand op en sluit het en start Apache opnieuw om deze wijzigingen door te voeren.

 sudo /etc/init.d/apache2 opnieuw opstarten 

Maak virtuele mappen aan

Eerst moet u een directorystructuur maken die de webpagina's bevat. Deze map staat bekend als DocumentRoot voor het domein.

Maak drie mappen voor websites "www.ipvhost1.com", "www.ipvhost2.com" en "www.portvhost.com" onder de standaard DocumentRoot-map van Apache.

 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 

Maak test-webpagina's voor elke virtuele host

Maak een "index.html" -bestand voor elke website die specifieke IP's en poorten identificeert.

Maak een index.html-bestand voor de virtuele host "www.ipvhost1.com".

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

Voeg de volgende inhoud toe.

 www.ipvhost1.com 

Sla het bestand op en sluit het als je klaar bent.

Maak een "index.html" bestand voor "www.ipvhost2.com" virtuele host.

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

Voeg de volgende inhoud toe.

 www.ipvhost2.com 

Sla het bestand op en sluit het als je klaar bent.

Maak een "index.html" bestand voor "www.portvhost.com" virtuele host.

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

Voeg de volgende inhoud toe.

 www.portvhost.com 

Sla het bestand op en sluit het als je klaar bent.

Eigendom en machtigingen instellen

Apache-service wordt standaard uitgevoerd als een "www-gegevens" -gebruiker in Ubuntu. U moet het eigendom van deze drie virtuele mappen wijzigen in "www-data", zodat Apache gegevens kan lezen en schrijven.

Om dit te doen, voer:

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

Ook moet u ervoor zorgen dat de Apache-webrootdirectory (/ var / www / html) leesbaar is, zodat iedereen er bestanden van kan lezen.

 sudo chmod -R 755 / var / www / html 

Maak virtuele hostbestanden

Standaard wordt Apache geleverd met een standaard virtueel hostbestand met de naam "000-default.conf". U moet eerst dit virtuele hostbestand uitschakelen.

Voer hiervoor de volgende opdracht uit.

 sudo a2dissite 000-default.conf 

De volgende stap is het maken van een virtueel hostconfiguratiebestand voor elke website. De naam van elk configuratiebestand moet eindigen op ".conf".

Maak een virtueel hostbestand voor de website "www.ipvhost1.com".

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

Voeg de volgende inhoud toe.

 ServerAdmin [email protected] ServerName 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 gecombineerd 

Sla het bestand op en sluit het.

Maak een virtueel hostbestand voor de website "www.ipvhost2.com".

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

Voeg de volgende inhoud toe.

 ServerAdmin [email protected] ServerName 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 gecombineerd 

Sla het bestand op en sluit het.

Maak een virtueel hostbestand voor de website "www.portvhost.com".

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

Voeg de volgende inhoud toe.

 ServerAdmin [email protected] Servernaam 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 gecombineerd 

Sla het bestand op en sluit het.

Nadat u de virtuele hostbestanden hebt gemaakt, moet u de virtuele hosts inschakelen.

Je kunt dit doen door te hardlopen.

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

Start ten slotte de Apache-service opnieuw.

 sudo /etc/init.d/apache2 opnieuw opstarten 

Virtuele hosts testen

Nu is het tijd om de IP Virtualhost te testen. Open op een computer uw webbrowser en ga naar de URL's "http://192.168.1.227:80" en "http://192.168.1.228:80". U zou voorbeelddemonstratiepagina's moeten zien voor IP-gebaseerde virtuele hosting die er als volgt uitziet:

Op dezelfde manier opent u, om Port Virtualhost te testen, uw webbrowser en navigeert u naar URL "http://192.168.1.228:8080". Je zou een voorbeeld demo pagina moeten zien voor Port-gebaseerde virtuele hosting die er zo uitziet:

Conclusie

In deze post liet ik de stap-voor-stap procedure zien om een ​​IP-gebaseerde en op poort gebaseerde virtuele host op de Apache-webserver te maken en in te schakelen. U kunt eenvoudig veel domeinen op dezelfde server instellen.