Wirtuale na Apachu, szybki tutorial
Na serwerze Apache można tworzyć serwery wirtualne. Jest to o tyle przydatna opcja, że pozwala jednym serwerem opędzić kilka witryn. Ogromną zaletą jest możliwość konfigurowania przez numer portu. Oznacza to, że na jednym IP mamy możliwość opędzenia kilku serwisów. Jest to szczególnie przydatna opcja w środowisku małej firmy, w której nie ma środków na zakup dodatkowego serwera na na przykład repozytorium Mavena lub SVNa i trzeba to ruszać na czyimś kompie. W środowisku domowym ma to tą zaletę, że główne repo Mavena mam na jednym kompie, a na innych kompach pobraną tylko część. Można w ten sposób udostępniać też pliki po http w sieci domowej. Dobra tyle teorii czas na szybką praktykę.
Otwieramy plik httpd i na końcu odszukujemy:
Listing 1. Tu jest konfiguracja
#<VirtualHost *:80>
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#</VirtualHost>
Kopiujemy tyle razy ile vhostów chcemy utworzyć. Odszukujemy dyrektywę Listen 80 i kopiujemy ją tyle razy ile chcemy stworzyć serwerów. Następnie ustawiamy numery portów. Warto tu pomyśleć o jakiejś nomenklaturze, u mnie wygląda to tak:
Listing 2. Porty nie mylić z portami
Listen 28080
Listen 28180
Pierwszy to serwer główny, drugi maven. Następnie w części zatytułowanej \### Section 2: 'Main’ server configuration komentujemy:
- ServerAdmin admin@localhost
- ServerName *:80
- DocumentRoot „D:/workspace”
- <Directory „D:/workspace”>
- Options Indexes FollowSymLinks
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
W ten sposób wyłączamy „główny” serwer. I tak docelowo jest przerobienie go na vhost, więc nie robi nam to różnicy. Na zakończenie wracamy na koniec naszego pliku i modyfikujemy nasze vhosty:
Listing 3
NameVirtualHost *:28180
<VirtualHost *:28180>
ServerAdmin webmaster@localhost
DocumentRoot D:/maven/repo/
ServerName localhost:28180
ErrorLog D:/Apache2/Apache2/logs/error2.log
<Directory "D:/maven/repo/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:28080>
ServerAdmin webmaster@localhost
DocumentRoot D:/workspace/
ServerName localhost:21080
ErrorLog D:/Apache2/Apache2/logs/error.log
<Directory "D:/workspace/" >
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
finito. Na localhost:28080 śmiga serwer www, a na localhost:28180 maven.