Apache – Serwery wirtualne

Od jakiegoś czasu można zaobserwować niesłychany wzrost popularności serwerów WWW. O ile jakiś czas temu firma czy organizacja mogła zadowolić się stroną WWW zamieszczoną w podkatalogu jakiegoś serwera, to dzisiaj ambicją każdego jest posiadać własny adres (najlepiej bardzo krótki i prosty do zapamiętania – np.w często opisywanej postaci http://www.firma.com.pl/). Czy to oznacza, że dla każdego serwera WWW trzeba poświęcać osobny komputer? Byłoby to ogromnym marnotrawstwem i czyniłoby takie rozwiązanie mało opłacalnym. Z pomocą przychodzi mechanizm tzw. serwerów wirtualnych. Wirtualne serwery są niezwykle przydatne kiedy chcemy, aby nasz serwer obsługiwał kilka witryn widocznych pod innymi adresami URL niebędącymi nazwą serwera z katalogiem tych witryn, w którym znajduje się strona. Umożliwia to dokładna personalizacje ustawień dla każdego i tworzenie osobnych dzienników serwera.

Uruchomienie serwerów wirtualnych możemy uzyskać na dwa sposoby:

  • Uruchomić pojedynczą kopie serwera obsługującą dwie lub więcej witryn z wykorzystaniem serwerów wirtualnych. Rozwiązanie to jest najczęściej stosowane.

  • Uruchomienie dwóch lub więcej kopi serwera Apacze, z których każda obsługuje osobną witrynę. Rozwiązanie to wykorzystuje się bardzo rzadko.

Serwery Wirtualne można tworzyć na podstawie adresów IP czyli do jednego urządzenia sieciowego przypisanych jest kilka adresów IP z odpowiadającym innym adresem domenowym lub poprzez identyfikowanie serwerów różnymi adresami URL związanymi z tym samym adresem IP.

Rozwiązanie wykorzystujące identyfikacje serwerów poprzez nazwy domenowe jest najbardziej polecane i bazuje ono na protokole HTTP/1.1. Rozwiązanie to wykorzystuje jeden adres IP, a rozróżnianie polega na zdefiniowaniu rożnych nazw domeny np. forma.com.ploraz biuro.firma.com.pl oczywiście nazwy te muszą być zarejestrowane w systemie DNS.

Apache serwery wirtualne – przykłady

<VirtualHost firma.com.pl>

ServerAdmin  administartork@firma.com.pl

DocumentRoot   /usr/Apache2/httdocs

SerwerName  firma.com.pl

(…)  # tu inne parametry

ErrorLog  /usr/Apache2/logs/error_log

TransferLog  /usr/Apache2/logs/access_log

</VirtualHost>

 

<VirtualHost biuro. firma.com.pl>

ServerAdmin  administartor@firma.com.pl

DocumentRoot  /usr/www/biuro

SerwerName biuro.firma.com.pl

(…)  # tu inne parametry

ErrorLog  /usr/www/biuro/logs/error_log

TransferLog  /usr/www/biuro/logs/access_log

</VirtualHost>

W tym przykładzie kluczowym elementem jest dyrektywa NameVirtualHost,która informuje serwer że żądanie kierowane jest do danego adresu IP i powinno być rozdzielone w zależności od nazwy domenowej witryny.

Dyrektywa: NameVirtualHost

Wartości: Adres IP port

Użycie: Konfiguracja główna

Opis: Umożliwia zdefiniowanie adresu IP oraz portu wykorzystywane przez serwery wirtualne identyfikowane za pomocą nazw.

Identyfikacja serwerów wirtualnych za pomocą adresów IP jest w Internecie ciągłe dość popularna mimo iż dostępny zakres adresów drastycznie zmalał.

W protokole HTTP/1.0 identyfikacja stron możliwa była jedynie w oparciu o numery IP. Dopiero protokół HTTP/1.1 wprowadził metodę umożliwiającą przesłanie przez przeglądarkę nazwy domenowej serwera.

Wielu administratorów korzysta z adresu IP ze względu na to, że starsze przeglądarki nie będą udostępniały możliwości dostępu do serwera Apache

<VirtualHost 83.210.159.2>

ServerAdmin administartork@firma.com.pl

DocumentRoot /usr/Apache2/httdocs

SerwerName firma.com.pl

ErrorLog /usr/Apache2/logs/error_log

TransferLog /usr/Apache2/logs/access_log

</VirtualHost>
<VirtualHost 83.210.159.3>

ServerAdmin administartor@firma.com.pl

DocumentRoot /usr/www/biuro

SerwerName biuro.firma.com.pl

ErrorLog /usr/www/biuro/logs/error_log

TransferLog /usr/www/biuro/logs/access_log

</VirtualHost>

Ostatnią metodą konfiguracji serwerów wirtualnych jest identyfikacja oparta na numerach portów. Zaletą tej techniki jest uruchomienie większej ilości serwerów wirtualnych z użyciem jednego adresu IP i pojedynczej nazwy domenowej.

Listen 8080

<VirtualHost 83.210.159.2:80>

ServerAdmin administartork@firma.com.pl

DocumentRoot /usr/Apache2/httdocs

SerwerName firma.com.pl

ErrorLog /usr/Apache2/logs/error_log

TransferLog /usr/Apache2/logs/access_log

</VirtualHost>
<VirtualHost 83.210.159.2:8080>

ServerAdmin administartor@firma.com.pl

DocumentRoot /usr/www/biuro

SerwerName biuro.firma.com.pl

ErrorLog /usr/www/biuro/logs/error_log

TransferLog /usr/www/biuro/logs/access_log

</VirtualHost>

Ze względu na to, że metoda jest oparta na metodzie opierającej się na adresach IP do obsługi nie jest potrzebny protokół HTTP/1.1.
Jeżeli będziemy chcieli obejrzeć stronębiuro.firma.pl, to w przeglądarce musimy podać adres: firma.pl:8080. Z tego powodu ta metoda nie jest zbyt popularna wśród użytkowników Internetu.

Czasami istnieje potrzeba, by dany serwer wirtualny był widoczny pod wieloma nazwami ze względu na przyzwyczajenia użytkowników podczas wpisywania adresów w przeglądarce. Najczęstszym przypadkiem jest wpisywanie adresu bez znaków WWW. Rozwiązanie tego problemu stanowi dyrektywa ServerAlias, która umożliwia zdefiniowanie aliasów identyfikujących serwer wirtualny.

 

<VirtualHost 83.210.159.2>

ServerAdmin administartork@firma.com.pl

DocumentRoot /usr/Apache2/httdocs

SerwerName firma.com.pl

ServerAlias www.firma.pl

ErrorLog /usr/Apache2/logs/error_log

TransferLog /usr/Apache2/logs/access_log

</VirtualHost>

 

Dyrektywa:ServerAlias

Użycie:Serwery wirtualne

Opis:Dyrektywa ta pozwala określić synonimy nazw (aliasy) danego serwera wirtualnego

Możliwości jest oczywiście o wiele więcej, ale przedstawione powyżej pozwolą na podstawową konfigurację.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *