Deoarece mi-a fost cerut, iata ca in momentul de fata scriu un articol despre folosirea VHOSTS in apache.

Ce este VHOSTS?
VHOST (de fapt Virtual Host), dupa cum ii spune si numele, se refera la metoda practica de a gazdui mai mult de 1 domeniu/server fizic.

VHost bazat pe adresa ip:
Ce este un VHost bazat pe adresa ip?
Prin VHost bazat pe adresa ip intelegem ca fiecare domeniu este cazduit pe o adresa ip dedicata lui.
Ex:
www.domeniu1.ro duce la 192.168.1.1
www.domeniu2.ro duce la 192.168.1.2
etc.
Cum setez VHost-ul bazat pe ip?
Pai foarte simplu.
Un exemplu ar fi:

<VirtualHost 192.168.1.1>
ServerName www.domeniu1.ro
ServerAdmin webmaster@domeniu1.ro
DocumentRoot /var/www/domeniu1/
</VirtualHost>
<VirtualHost 192.168.1.2>
ServerName www.domeniu2.ro
ServerAdmin webmaster@domeniu2.ro
DocumentRoot /var/www/domeniu2/
</VirtualHost>

Evident, acest exemplu se poate extinde cu restul de directive, dar despre asta o sa vorbim la VHost-urile bazate pe nume deoarece este acelasi lucru.

VHost bazat pe nume:
Ce este un VHost bazat pe nume?
Prin VHost bazat pe nume intelegem ca pe fiecare adresa ip se pot pune oricate domenii se doreste.
Ex:
www.domeniu1.ro poate duce la 192.168.1.1
www.domeniu2.ro poate duce tot la 192.168.1.1
etc.
Cum setez VHost-ul bazat pe nume?
Ei bine, diferenta dintre VHost-ul bazat pe ip si cel bazat pe nume este ca cel bazat pe nume trebuie sa aiva optiunea <strong>NameVirtualHost</strong> activa si sintaxa generala este putin diferita.
Cel mai simplu exemplu ar fi acesta:

NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.domeniu1.ro
DocumentRoot /var/www/domeniu1/
</VirtualHost>

<VirtualHost *:80>
ServerName www.domeniu2.ro
DocumentRoot /var/www/domeniu2/
</VirtualHost>

Pe langa aceste setari de baza, mai avem si cateva directive optionale, dar cateodata indispensabile dupa cum urmeaza:
ServerAdmin - Adresa de email ce apare in subsolul paginii pentru directory index si paginile de eroare(daca este activat).
ServerAlias - optiune foarte utila atunci cand se doreste accesul de pe www.domeniu.ro cat si de pe alte combinatii (ex: domeniu.ro sau gigi.ro). Aceste alias-uri se adauga unul dupa celalalt, separate de spatiu. *.domeniu.ro inseamna ca orice subdomeniu al domeniului <b>domeniu.ro</b> va fi vazut ca domeniu.ro.
ErrorLog    - se specifica locatia fisierului unde se vor scrie erorile legate de acel domeniu.
CustomLog    - se specifica locatia fisierului unde se vor scrie datele despre accesul pe acel domeniu.
ServerSignature - Daca este setat pe Off, server-ul apache nu trimite catre utilizator informatii vitale despre configuratia software a server-ului (recomandat).

Exemplu concret pentru un sistem de VHost:
Adrese IP: 192.168.1.1, 192.168.1.2
Domenii Web: www.invizibil1.ro, www.invizibil2.ro, www.invizibil3.ro

NameVirtualHost *:80

<VirtualHost 192.168.1.1:80>
ServerName www.domeniu1.ro
DocumentRoot /var/www/domeniu1/
ServerAdmin webmaster@domeniu1.ro
ServerAlias *.domeniu1.ro
ErrorLog /var/log/apache2/domeniu1/error.log
LogLevel warn
CustomLog /var/log/apache2/domeniu1/access.log combined
ServerSignature Off
</VirtualHost>

<VirtualHost 192.168.1.2:80>
ServerName www.domeniu2.ro
DocumentRoot /var/www/domeniu2/
ServerAdmin webmaster@domeniu2.ro
ServerAlias *.domeniu2.ro
ErrorLog /var/log/apache2/domeniu2/error.log
LogLevel warn
CustomLog /var/log/apache2/domeniu2/access.log combined
ServerSignature Off
</VirtualHost>

<VirtualHost 192.168.1.1:80>
ServerName www.domeniu3.ro
DocumentRoot /var/www/domeniu3/
ServerAdmin webmaster@domeniu3.ro
ServerAlias *.domeniu3.ro
ErrorLog /var/log/apache2/domeniu3/error.log
LogLevel warn
CustomLog /var/log/apache2/domeniu3/access.log combined
ServerSignature Off
</VirtualHost>

Sper ca v-a fost de folos articolul.
Astept feedback cu interes.

Alte articole asemanatoare