Milanet
· Strona główna
· Ankiety
· Czat Box
· Dodaj News
· Downloads
· FAQ
· Journal
· Kontakt
· Prywatna wiadomosc
· Statystyki
· Szukaj
· Top 10
· Twoje konto
· Web Links
Statystyka
Witaj, Anonymous
Pseudonim
Hasło
(Zarejestruj się)
Członkostwo:
Ostatni: bobkiler
Nowe dzisiaj: 0
Nowe wczoraj: 0
Wszystkie: 4

Na stronie:
Go¶ci: 34
Użytkowników: 0
Razem: 34
Wikipedia
get info from WikiPedia


Jak skonfigurowac wirtualna domenę


Skoro tu trafiłeś, podejrzewam że wiesz co to są domeny. Dla porządku wyjaśnię jednak, kiedy mamy do czynienia z domenami wirtualnymi. Otóż byłoby rozwiązaniem raczej mało wygodnym, gdyby w celu uruchomienia kilku serwisów www pod różnymi adresami (www.domena1.pl, www.domena2.pl, itp.) konieczne było konfigurowanie odrębnych serwerów. Dlatego wymyślono mechanizm wirtualnych domen, dzięki któremu pojedynczy serwer może odpowiadać za większą liczbę adresów, dla każdego z nich zwracając np. inną stronę www.


W przypadku serwera Apache możliwe są dwa podejścia do wirtualnych domen. Domeny mogą być rozróżniane po numerze IP (konieczne jest posiadanie odpowiedniej liczby zewnętrznych adresów IP), lub po nazwie domeny. Druga z tych możliwości - tzw. name based virtual domains - jest lepsza, gdyż nic nie stoi na przeszkodzie, by do jednego IP przypisać praktycznie dowolną liczbę domen. Rozwiązanie to, o ile mi wiadomo, jest możliwe od wprowadzenia protokołu HTTP w wersji 1.1. Nie stanowi to jednak żadnej przeszkody, gdyż już od dawna większość popularnych przeglądarek i serwerów protokół ten obsługuje. Podejście takie nie jest natomiast możliwe np. w przypadku serwerów FTP, ponieważ jak dotąd w protokole FTP nie przewidziano możliwości sprawdzenia, za pośrednictwem jakiej domeny użytkownik trafił pod dany adres IP.



Na początek opiszę metodę działającą w oparciu o różne numery IP. Jest to w konriguracji bardziej kłopotliwy sposób, wymaga "zużycia" dodatkowych, a jak wiadomo cennych numerów IP i na dzień dzisiejszy trudno mi sobie wyobrazić sytuację, w której rzeczywiście konieczne byłoby zastosowanie tej metody. Jedyny wyjątek stanowią tu połączenia po ssl, gdzie numer IP (lub port) jest jedynym kryterium, wg którego apache jest w stanie wybrać właściwy certyfikat. Pierwszą rzeczą, która będzie nam potrzebna jest wkompilowana w jądro obsługa tzw. IP-aliasingu. Dzięki temu na jednej karcie sieciowej możemy uruchomić kilka interfejsów, przypisując każdemu z nich inny adres IP. Jeśli przykładowo nasz serwer ma kartę sieciową eth0 z przypisanym adresem 1.2.3.4, możemy stworzyć kolejne interfejsy: eth0:0 -> 1.2.3.5, eth0:1 -> 1.2.3.6 itd. (patrz: konfiguracja karty sieciowej) W kolejnym kroku musimy z tymi numerami IP skojarzyć nazwy domen, czyli dodać odpowiednie wpisy w serwerze DNS, np. 1.2.3.5 -> www.domena1.pl, 1.2.3.6 -> www.domena2.pl (jak to zrobić wykracza już poza ramy tego artykuliku...) Na koniec pozostaje odpowiednio przekonfigurować serwer Apache. W pliku /etc/httpd/httpd.conf dla każdej wirtualnej domeny należy utworzyć osobny wpis o postaci:


DocumentRoot katalog domowy [dodatkowe parametry konfiguracyjne wirtualnego hosta]


Adres może być nazwą domeny, lub numerem IP[:port]. Jeśli apache jest skonfigurowany do nasłuchiwania na wszystkich interfejsach sieciowych w systemie, jest to wszystko, co jest niezbędne. W przeciwnym wypadku dla każdego adresu należy jeszcze przed sekcją wirtualnego hosta dodać dyrektywę: Listen IP[:port]


Druga ze wspomnianych metod na konfigurację wirtualnych domen w Apache'u jest nieco prostsza. I tu oczywiście konieczne jest, by odpowiednie domeny zostały wcześniej wpisane do DNS, jednak tym razem wszystkie te domeny powinny wskazywać na ten sam numer IP - przypisany naszemu serwerowi. W pliku httpd.conf dopisujemy tym razem:


NameVirtualHost IP[:port]

ServerName www.domena1.pl

ServerAlias www.domena2.pl

[wszelkie dodatkowe parametry konfiguracyjne]

ServerName www.domena3.pl

[wszelkie dodatkowe parametry konfiguracyjne]

[itd...]


Dyrektywa NameVirtualHost informuje daemona httpd, że na tym adresie IP decyzja o tym, która strona powinna zostać wyświetlona, musi zostać podjęta na podstawie nazwy domeny, poprzez którą użytkownik odwołał się do serwera. Dalej, w nagłówku każdego kolejnego serwera wirtualnego podajemy adres - dokładnie ten zdefiniowany w NameVirtualHost.

Wpisy: ServerName oraz dowolna liczba parametrów ServerAlias określają, za które z adresów będzie odpowiadał rozpatrywany wirtualny serwer. Zwykle określenie numeru portu w dyrektywie NameVirtualHost jest zbędne - serwer domyślnie będzie "słuchał" na portach, które ustawi mu się w podstawowej konfiguracji. Jednak zapis taki pozwala stworzyć wirtualne domeny w obrębie pojedynczej domeny - rozróżniane przez port. Takie rozwiązanie czasem również może okazać się przydatne - jest np. sposobem na uruchomienie połączeń SSL bez konieczności użycia wirtualnych domen rozróżnianych po IP.


Na koniec jeszcze jedna techniczna porada: jeśli na serwerze jest dużo wirtualnych domen, pakowanie wszystkich wpisów do pliku httpd.conf nie jest zbyt eleganckie. Dzięki mechanizmowi "includów" można konfigurację grup domen, a nawet każdej pojedynczej domeny zawrzeć w odrębnym pliku. Dyrektywie Include jako parametr możemy podać zarówno pojedynczy plik, jak też katalog. W tym drugim przypadku do głównego pliku konfiguracyjnego zostaną dołączone po kolei wszystkie pliki znajdujące się w podanym katalogu.