Konfiguracja serwera WWW
Serwer WWW (HTTP/HTTPS) to jedna z podstawowych usług sieciowych odpowiedzialna za hostowanie, renderowanie oraz udostępnianie stron i aplikacji internetowych. W systemach serwerowych najczęściej stosuje się serwery Apache2 oraz Nginx. Jedną z najważniejszych funkcji tych serwerów jest obsługa wirtualnych hostów (Virtual Hosts), co pozwala na utrzymanie wielu niezależnych witryn internetowych o różnych nazwach domenowych na jednej maszynie fizycznej przy użyciu jednego adresu IP.
1. Instalacja serwera Apache2 w systemie Linux
Do demonstracji i nauki konfiguracji wirtualnych hostów posłużymy się serwerem Apache2 na systemie z rodziny Debian lub Ubuntu. Instalacja odbywa się z oficjalnych repozytoriów pakietów. Po ukończeniu procesu instalacji system automatycznie uruchamia usługę, która nasłuchuje na standardowym porcie osiemdziesiątym protokołu HTTP. Instalację wykonujemy za pomocą poniższej komendy:
sudo apt install apache2 -y
2. Przygotowanie struktury katalogów i stron testowych
Aby serwer mógł obsługiwać dwie niezależne domeny, na przykład szkola.local oraz firma.local, musimy najpierw stworzyć dla nich osobne foldery w katalogu var www. Wewnątrz tych folderów utworzymy podkatalogi o nazwie public_html, które będą przechowywać pliki źródłowe naszych stron (np. plik index.html). Foldery te tworzymy poleceniem:
sudo mkdir -p /var/www/szkola.local/public_html /var/www/firma.local/public_html
Po utworzeniu struktury katalogów tworzymy plik index.html w katalogu szkola.local, wprowadzając do niego prosty nagłówek tekstowy ułatwiający identyfikację strony podczas testów w przeglądarce. Do edycji pliku możemy posłużyć się edytorem nano:
sudo nano /var/www/szkola.local/public_html/index.html
3. Konfiguracja wirtualnych hostów (Virtual Hosts)
Pliki konfiguracyjne wirtualnych hostów w serwerze Apache2 znajdują się w katalogu etc apache2 sites-available. Domyślną konfigurację możemy skopiować jako szablon dla naszej nowej witryny szkola.local.conf. Plik konfiguracyjny definiuje na jaką domenę serwer ma reagować (ServerName) oraz gdzie na dysku twardym znajdują się pliki tej strony (DocumentRoot). Zawartość pliku konfiguracyjnego dla witryny szkola.local powinna wyglądać następująco:
<VirtualHost *:80>
ServerName szkola.localGłówna nazwa domenowa witryny.
ServerAlias www.szkola.local
DocumentRoot /var/www/szkola.local/public_htmlKatalog na serwerze przechowujący pliki tej strony.
ErrorLog ${APACHE_LOG_DIR}/szkola.local_error.log
CustomLog ${APACHE_LOG_DIR}/szkola.local_access.log combined
</VirtualHost>
Po zredagowaniu plików wirtualnych hostów dla obu stron, musimy włączyć nowo utworzone konfiguracje witryn w serwerze Apache2. Do aktywacji stron służy narzędzie a2ensite. Uruchamiamy je dla nowej strefy:
sudo a2ensite szkola.local.conf
Na koniec przeładowujemy demona usługi Apache2, co pozwoli na zaimportowanie nowej konfiguracji przez serwer bez konieczności przerywania aktywnego ruchu sieciowego:
sudo systemctl reload apache2