Jak zarządzać dynamicznymi wirtualnymi hostami za pomocą modułu MOD_VHOST_ALIAS
- 3894
- 208
- Juliusz Janicki
Serwer WWW Apache ma możliwość obsługi wielu stron z tego samego adresu IP, używając wirtualnych hostów. Każdy wirtualny host można skonfigurować w głównym pliku konfiguracyjnym serwera lub dzięki Włączać
albo Obejmują
dyrektywy, na własną dedykowaną. Kiedy liczba wirtualnych gospodarzy wzrasta, ich zarządzanie zaczyna stać się kłopotliwe. Jeśli ich konfiguracja jest dość podobna, możemy zarządzać nimi dynamicznie, dzięki mod_vhost_alias
moduł. W tym samouczku zobaczymy, jak to zrobić.
W tym samouczku się nauczysz:
- Co to jest wirtualny host Apache
- Jak sprawdzić, czy moduł mod_vhost_alias jest włączony
- Jak załadować moduł MOD_VHOST_ALIAS w rodzinie dystrybucji Debian i Red Hat
- Jak zarządzać dynamicznymi wirtualnymi hostami za pomocą modułu mod_vhost_alias
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny dystrybucja |
Oprogramowanie | Apache Serwer WWW |
Inny | Uprawnienia korzeniowe |
Konwencje | # - Wymaga, aby podane Linux -commands były wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$-wymaga wykonania Linux-commands jako zwykłego niewidzianego użytkownika |
Szybki wirtualny przegląd hosta
Jak już wspomnieliśmy we wstępie, serwer WWW Apache ma możliwość obsługi wielu stron internetowych za pomocą wirtualnych hostów i właściwej konfiguracji DNS. Poniższy to minimalna, ale typowa wirtualna definicja hosta:
Servername www.test.Test LAN Serveralias.Lan Documentroot/var/www/www.test.Lan
Ta konfiguracja będzie zarządzać żądaniami użytkownika do www.test.Lan
adres, który jest wartością ustawioną przez Nazwa serwera
dyrektywa, ale także test.Lan
, który jest Serveralias
. Z DocumentRoot
Dyrektywa ustawiliśmy katalog podstawowy, z którego należy obsługiwać pliki powiązane z hostem wirtualnym, co w tym przypadku jest /var/www/www.test.Lan
.
Wirtualny host można zdefiniować w pliku konfiguracyjnym głównego serwera (/etc/httpd/conf/httpd.conf
O rodzinie dystrybucji Red Hat, /etc/apache2/apache2.conf
na temat systemów debian i jego instrumentów pochodnych) lub może być napisane we własnym pliku i zawarte z głównej konfiguracji. Rzeczywiście, jeśli spojrzymy na konfigurację Apache w głównych dystrybucjach Linux, możemy zobaczyć, że pliki wirtualnych hostów są zawarte za pośrednictwem Obejmują
dyrektywa z jakiegoś konkretnego katalogu.
Na przykład w Fedory i powiązanych rozkładach znaleźliśmy następującą konfigurację na końcu pliku:
# Załaduj pliki konfiguracyjne w "/etc/httpd/conf.D ”, jeśli taki w ogóle. Obejmują conf.D/*.conf
Zamiast tego na Debian:
# Dołącz konfiguracje wirtualnego hosta: Obliczowe witryny-obsługujące/*.conf
Możemy zauważyć, że ścieżka, z której należy uwzględnić pliki, jest względna root serwera. Obejmują
Dyrektywa służy do uwzględnienia wirtualnych plików hosta, które należy wymienić za pomocą .conf
przyrostek. Tutaj Włączać
Można również zastosować dyrektywa; Jaka jest różnica między nimi? Oba działają dokładnie w ten sam sposób, Obejmują
Dyrektywa nie powoduje jednak błędu, gdy używane są wieloznaczne (jak w tym przypadku) i nie znaleziono dopasowania, ani jeśli ścieżka nie istnieje, ogólnie.
Aby ta konfiguracja działała, należy również skonfigurować odpowiedni wpis DNS. Jeśli jednak pracuje lokalnie, możemy po prostu dodać linię w /etc/hosts
plik. Na przykład:
127.0.0.1 www.test.Lan
Kiedy konfiguracje wirtualnych hostów zaczyna rosnąć, ich zarządzanie może z łatwością stać się kłopotliwe. Możliwym rozwiązaniem tego problemu jest użycie dynamicznie generowanych wirtualnych hostów. Zobaczmy, jak to zrobić z mod_vhost_alias moduł.
Ładowanie modułu mod_vhost_alias
Pierwszą rzeczą, którą musimy zrobić, to sprawdzić, czy mod_vhost_alias Moduł jest włączony. Polecenie, które chcemy uruchomić w tym celu, zależy od rozkładu, którego używamy. W przypadku Fedory i innym dystrybucji rodziny Red Hat możemy skorzystać z następujących czynności:
$ httpd -m | grep -i vhost_alias
Zamiast tego na Debian:
$ apachectl -m | grep -i vhost_alias
Przekazując -M
opcja do httpd
(Lub Apachectl
) polecenie, otrzymujemy listę załadowanych modułów statycznych i wspólnych; Prowadzenie wyjścia do GREP, możemy sprawdzić, czy jest w nim potrzebny moduł. W przypadku, gdy moduł nie jest ładowany, na Debian i jego pochodne możemy uruchomić następujące polecenie:
$ sudo a2enmod vhost_alias && sudo systemctl restart apache2
A2enmod
polecenie tworzy symboliczny link do /etc/apache2/mods-dostępna/mod_vhost_alias.Więc
złożyć do /etc/apache2/mods-obsługuje
katalog (podobnie jak to A2ENSITE
polecenie wykonuje konfiguracje wirtualnych hostów), z których moduły są ładowane z.
W rodzinie dystrybucji Red Hat lista załadowanych modułów podstawowych znajduje się w /etc/httpd/conf.moduły.d/00 baza.conf
plik. Każdy moduł jest ładowany Module load
dyrektywa. Jeśli z jakiegoś powodu vhost_alias
Linia modułu (67) jest komentowana, po prostu usuń komentarz, zapisz modyfikację i ponownie załaduj usługę HTTPD:
$ sudo systemctl restart httpd
Po włączeniu modułu możemy kontynuować faktyczną konfigurację.
Tworzenie dynamicznych wirtualnych hostów
Konfiguracja, którą tworzymy, opiera się na tym, że mod_vhost_alias Moduł przechowuje komponenty rozdzielone przez kropki żądanej nazwy wirtualnego hosta wewnątrz niektórych zmiennych. Jeśli weźmiemy www.test.Lan
Wirtualny host Jako przykład będziemy mieli:
- %0: Cała nazwa wirtualnego hosta
- %1: „www”
- %2: „Test”
- %3: „Lan”
Można również użyć liczb ujemnych, więc na przykład będziemy mieli:
- %-1 Ostatnia część nazwy, w tym przypadku „LAN”
- %-2 przedostatnia część, w tym przypadku „test”
Możliwe jest nawet określenie każdego elementu wirtualnej nazwy hosta z określonego portu lub wstecz. Na przykład, %2+
oznacza „od drugiej części” i %-2+
„powoduje przedostatnie komponent i wszystkie elementy, które poprzedzają go, aby zostać uwzględnione.
Przypuśćmy, że chcemy użyć /var/www/
katalog jako baza wszystkich naszych wirtualnych hostów, możemy utworzyć następującą konfigurację w pliku, nazwijmy to dynamic_vhost.conf
:
UsecanonicalName Off VirtualDocumentroot "/var/www/%-2"
Wyjaśnijmy powyższą konfigurację. Przede wszystkim użyliśmy UsecanonicalName
dyrektywa i ustaw ją na „wyłączone”: zrobiliśmy to, aby upewnić się, że nazwa serwera jest pobierana z nagłówka „host:” w żądaniu HTTP. Nie użyliśmy VirtualDocumentroot
dyrektywa. Dyrektywa jest potrzebna do ustawienia dynamicznej ścieżki dla głównego dokumentu wirtualnego hosta, za pomocą zmiennych, które widzieliśmy powyżej, które są oceniane podczas zarządzania żądaniem.
Kiedy www.test.Lan
Poproszony jest wirtualny host, automatycznie pliki, które należy podać, zostaną przeszukane w środku /var/www/test
informator. Użycie %-2
indeks ujemny ma tę zaletę, że konfiguracja będzie działać zarówno z www.test.Lan
i dla test.Lan
, Ponieważ działa wstecz.
To oczywiście tylko przykład tego, co można osiągnąć za pomocą mod_vhost_alias moduł i możesz utworzyć konfigurację, która lepiej Ci odpowiada.
Niedogodności
Ten rodzaj konfiguracji jest dość praktyczny, jeśli cały wirtualny host, którym zarządzamy, są dość podobne i wymagają tej samej konfiguracji, ale ma swoje wady, które mogą być dość istotne w zależności od sytuacji. Po pierwsze, nie będzie możliwe określenie ustawień specyficznych dla wirtualHost, jeśli nie przy użyciu .pliki htaccess); Tego rodzaju konfiguracja spowoduje również problemy, jeśli zostanie użyte wraz ze standardowymi konfiguracjami wirtualnego hosta. Wreszcie żądania wszystkich wirtualnych hostów zostaną zalogowane w tym samym pliku.
Wnioski
Serwer WWW Apache może obsługiwać wiele stron internetowych i zasobów z jednego komputera dzięki korzystaniu z wirtualnych hostów. Gdy liczba wirtualnych hostów zaczyna rosnąć liczba, może stać się trudna do zarządzania nimi, jeśli każdy ma własny plik konfiguracyjny/sekcja. Jeśli mają podobne ustawienia, możemy obejść ten problem przy użyciu dynamicznie generowanych wirtualnych hostów, korzystając z mod_vhost_alias moduł.
W tym artykule zobaczyliśmy, jak sprawdzić, czy ten moduł jest włączony i jak go włączyć w rodzinach dystrybucji Debian i Red Hat. Widzieliśmy również, w jaki sposób komponenty nazwy wirtualnej hosta są przechowywane w zmiennych i jak je używać do tworzenia dynamicznych wirtualnych hostów. Na koniec widzieliśmy, jakie są wady korzystania z tej konfiguracji.
Powiązane samouczki Linux:
- Jak migrować Apache do Nginx, przekształcając wirtualne hosty na…
- Firefox na Linux - Twoje połączenie nie jest bezpieczne
- Porównanie Linux Apache Prefork vs Pracowni
- Rzeczy do zainstalowania na Ubuntu 20.04
- Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
- Jak zainstalować Ubuntu 20.04 na VirtualBox
- Lista najlepszych narzędzi Kali Linux do testowania penetracji i…
- Apache IP i oparte na nazwach wirtualne hosty
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
- « Jak skonfigurować NFS w Linux
- Jak edytować plik systemowy z sudoEdit, który zachowuje wywołujące środowisko użytkownika »