Ionut Stoica

Programator PHP / Frontend developer / Pasionat de Electronica Auto
6Feb

Utilizare Virtual Hosts Apache

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.

[ad]

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

[ad]

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.

Comments(6)
  • Feb 6, 2009 at 4:16 pm,  Reply

    Mersi man 😉 Tine tot asa 😀

  • Feb 6, 2009 at 4:56 pm,  Reply

    Cu placere. O sa incerc sa cuprind in acest blog cat mai multa informatie acumulata in cei 3 ani de experienta in domeniul Web.

  • Oct 23, 2009 at 11:55 pm,  Reply

    Parerea mea personala este ca tot ce incerci sa spui aici este identic cu lectia unu profesor universitar care preda la un liceu petrolier, de ex. considerat foarte slab. Deja pleci de la premisa ca si cel din banca ar trebui sa stie cel putin jumatate din ce stii tu cred ca este gresita. Eu de un an incerc sa inteleg ceva si numai dupa milioane de incercari am ajuns la un anumit nivel. La final toate explicatiile din trecut par si atunci prea SF. Revenind. Nu inteleg nimic . SI de aceea ar trebuia sa fi eun pic mai detaliat. Spre exemplificare. Am mai multe domenii cumparate, si vreau sa le pun pe un server
    Am instalat xampp. am declarat IP real la rotld.ro, am luat DNS de la freedns pentru ca nu am reusit sa configurez la mine pe server unu, si acu m-am lovit de problema ca daca apelez numele siturilor se duc toate pe primul declarat. Am inteles ca am nevoie de un VHOST. Am obosit sa tot caut si sa inteleg. Daca poti sa imi explici mai pe intelesul unui nepriceput as ramane recunoscator. Setarile VHOST dupa nume unde naiba se fac? MEntionez ca am Windows XP . Daca se poate un raspuns la birladeanut@hotmail.com
    merci anticipat

  • Oct 24, 2009 at 12:00 am,  Reply

    Salut Tibi, daca doresti sa te ajut sa configurezi Virtual Host ma gasesti si pe Yahoo Messenger la id-ul dabvnet.
    Este foarte simplu: Ai nevoie de VHost bazat pe nume, cate un director pentru fiecare site si cam atat. Acestea le poti salva intr-un fisier vhost.conf pe care il incluzi la sfarsitul apache2.conf sau httpd.conf, depinde ce tip de server web folosesti.

  • marian
    Nov 27, 2009 at 7:15 pm,  Reply

    vreau sa fac un firtual host dar vreau sa fac pe al port, nu pe cel default, adica 80. Daca il las portul default imi rezolva DNS-ul dar dk pun alt port nu mai imi rezolva.
    In fisierul host din “C:\WINDOWS\system32\drivers\etc” am:
    127.0.0.1:1200 nume.host.com
    si nu merge. Stie cineva de ce?

  • Nov 30, 2009 at 6:08 pm,  Reply

    In hosts pui doar ip-ul, nu si portul. De port se ocupa APACHE.

Leave a comment

Your email address will not be published.Field is required

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 Previous  All works Next