Forum komputerowe, forum informatyczne, naprawa laptpów , forum windows, forum linux, Hardware, Overclocking,

Pełna wersja: NameVirtualHost, jedno IP, wiele domen - konfiguracja Apache2
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Jeżeli na jednej maszynie i jednym IP obsługujemy wiele domen, musimy skonfigurować NameVirtualHost.
Musimy znaleźć plik httpd.conf (/etc/apache2/httpd.conf - dla Debiana) gdzieś w folderze apache2.
Na początku httpd.conf tworzymy wpis:

Kod:
NameVirtualHost [b]ip:port[/b]
Gdzie:
- ip to zewnętrzny adres naszego serwera (albo ten, na którym chcemy udostępniać usługe).
- port czyli numer portu na którym pracuje nasz serwer (zazwyczaj 80).

Przykład:
Kod:
NameVirtualHost 79.77.134.56:80

Ten kod daje znać, że będziemy działać na jednym IP. Jeżeli chcemy operować na wszystkich dostępnych IP zamiast IP dajemy gwiazdke *

Następnie musimy dodać wpisy (VirtualHost) dla poszczególnych domen, subdomen lub odwołań po IP.

Kod:
<VirtualHost 79.77.134.56:80>
    ServerName www.domena.pl
    ServerAlias domena.pl
    ServerAdmin admin@domena.com
    DocumentRoot /var/www/domena
</VirtualHost>

<VirtualHost 79.77.134.56:80>
    ServerName www.subdomena.domena.pl
    ServerAlias subdomena.domena.pl
    ServerAdmin admin@domena.com
    DocumentRoot /var/www/domena/subdomena
</VirtualHost>

<VirtualHost 79.77.134.56:80>
    ServerName www.innadomena.pl
    ServerAlias innadomena.pl
    ServerAdmin admin@innadomena.com
    DocumentRoot /var/www/innadomena
</VirtualHost>

<VirtualHost _default_>
    ServerName 79.77.134.56
    ServerAdmin admin@domena.com
    DocumentRoot /var/www/default
</VirtualHost>

Po słowie VirtualHost musi wystąpić to samo IP co po dyrektywie NameVirtualHost.
ServerName oznacza pełną nazwe dla domeny, ServerAlias to jest druga nazwa i tutaj zazwyczaj dajemy nazwe domeny bez www, tak żeby mozna sie bylo odwoływać na dwa sposoby (www.domena.pl i domena.pl).
ServerAdmin to nasz e-mail.
Natomiast DocumentRoot to scieżka, na serwerze na którą ma wskazywać domena.

W tej konfiguracji co podałem najpierw zadeklarowałem domene i miejsce na które ma wskazywać, potem subdomene dla tej domeny. Następnie zadeklarowałem inną domene.
Na końcu zadeklarowałem _default_ czyli jaką lokacje pokaże nam apache2, jeśli odwołamy sie po IP, albo po domenie, która nie została wyżej zadeklarowana.

INFO: Samo zadeklarowanie adresu IP i portu w dyrektywnie NameVirtualHost nie znaczy, że serwer będzie na takiej nasłuchiwał. To już trzeba zadeklarować w apache2.conf

Więcej na ten temat można znaleźć tutaj: http://httpd.apache.org/docs/2.0/vhosts/name-based.html