Apache IP i oparte na nazwach wirtualne hosty
- 1503
- 445
- Ignacy Modzelewski
Dzięki użyciu wirtualnych hostów możemy zrobić httpd
serwer zarządza wieloma stronami internetowymi. Możemy używać wirtualnych hostów IP i nazwy; Jakie są różnice między nimi?
Jak apache decyduje, co powinno być wirtualne hosty
Służy do odpowiedzi na żądanie klienta? Odpowiemy na te pytania
Artykuł, czytaj dalej!
W tym samouczku nauczysz się:
- Jakie są różnice między wirtualnymi hostami IP i nazwy
- Co to jest Słuchać dyrektywa i sposób jej używanego
- Jak Apache decyduje, jakiego wirtualnego hosta należy użyć do odpowiedzi na żądanie
Zastosowane wymagania i konwencje oprogramowania
Kategoria | Wymagania, konwencje lub wersja oprogramowania |
---|---|
System | Niezależny dystrybucja |
Oprogramowanie | Brak konkretnego oprogramowania |
Inny | Znajomość z serwerem WWW Apache i podstawowymi koncepcjami HTTP |
Konwencje | # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny |
Dyrektywa „słuchaj”
Pierwszą rzeczą, którą należy wziąć pod uwagę, jest Słuchać
dyrektywa. Ta dyrektywa jest obowiązkowa i jest potrzebna do powiedzenia httpd
serwer do czego Porta IP
kombinacja powinna słuchać żądań. Domyślnie serwer jest zwykle skonfigurowany do słuchania każdego Ip
na porcie 80
.
W /etc/httpd/conf/httpd.conf
który jest głównym httpd
Plik konfiguracyjny w systemach Fedora/Rhel/Centos w linii 45
, Na przykład możemy przeczytać:
Posłuchaj 80
Jak widać, tylko port jest określony Słuchać
dyrektywa. W rezultacie serwer będzie słuchać tego portu na wszystkich adresach IP komputera. Jeśli określono adres, serwer będzie słuchać tylko w dostarczonym IP: Port
połączenie.
Słuchać
Dyrektywa może być wielokrotnie powtarzana, dlatego bardzo łatwo jest określić wiele kombinacji.
Dopasowanie wirtualne
Po skonfigurowaniu serwera do słuchania określonego adresu lub portu Apache musi zdecydować, jakiego VirtualHost należy użyć do spełnienia żądania klienta. Przed zobaczeniem kroków związanych z tą decyzją krótko zobaczmy, jak zdefiniowany jest wirtualny host.
Dyrektywa używana do tworzenia i konfigurowania wirtualnego hosta jest Virtualhost
; Wykorzystuje następującą składnię:
…
Jak możemy obserwować, każdy Virtualhost
dyrektywa potrzebuje addr
; Można to określić jako:
- Adres IP, IPv4 lub IPv6 (adresy IPv6 muszą być zamknięte w nawiasach kwadratowych);
- W pełni kwalifikowana nazwa domeny;
- A
*
Wildcard (to będzie pasować do wszystkich adresów)
Wszystkie parametry i konfiguracje wykonane wewnątrz tagi, są „lokalne” dla tego konkretnego wirtualnego hosta. Oto przykład wirtualnej konfiguracji hosta:
Servername: www.przykład.com dokumentroot "/var/www/exkutone"
Lub za pomocą wieloznacznej karty:
Servername: www.przykład.com dokumentroot "/var/www/exkutone"
Pierwszą rzeczą, którą robi serwer, jest analiza, w kolejności każdego wirtualnego hosta i sprawdzenie, czy ich addr
odpowiada żądaniu. Należy zauważyć, że zdefiniowane adresy IP mają priorytet w stosunku do wieloznacznych, które są rozważane tylko wtedy, gdy nie znaleziono dokładnych dopasowań. W tym momencie możemy mieć trzy przypadki:
- Tylko jeden wirtualny host pasuje do żądania;
- Żadne wirtualne hosty nie pasują do żądania;
- Wiele wirtualnych hostów pasuje do żądania;
Pierwsza rozdzielczość przypadku jest łatwa: jeśli żądanie klienta pasuje tylko do jednego konkretnego wirtualnego hosta, httpd
Serwer odpowiada, obsługując treść związaną z tym wirtualnym hostem. W tym przypadku rozmawiamy o Oparte na IP
wirtualne hosty.
Drugi przypadek można również łatwo wyjaśnić: jeśli żadna wirtualna konfiguracja hosta nie spełnia żądania klienta, domyślna konfiguracja serwera służy do odpowiedzi na żądanie. W przypadku konfiguracji domyślnej zamierzamy wszystko ustawić poza .
W trzecim przypadku wiele wirtualnych hostów pasuje do żądania klienta. Kiedy tak się dzieje, serwer musi odróżnić w zależności od innego czynnika innego niż IP: Port
Połączenie: schemat i nazwa hosta, którego wirtualny host używa do identyfikacji siebie.
Wirtualne hosty oparte na nazwach
Serwer bada każdy pasujący wirtualny host w kolejności definicji i wybiera, który należy użyć w zależności od żądanego Nazwa hosta
. Nazywa się to wirtualnymi hostami „opartymi na nazwach”. Pierwszy wirtualny host, który pasuje do żądania, jest używany. Jeśli nie ma dopasowań, serwer używa Pierwszy zdefiniowane Virtualhost
jako awarie.
Główną zaletą korzystania z wirtualnych hostów opartych na nazwach jest to, że możemy uruchomić wiele stron internetowych na tym samym adresie IP. Zobaczmy przykład wirtualHost opartych na nazwie:
Servername www.serwer.com dokumentroot/var/www/serverone
Od *: 80
jest używany jako adres, wirtualny host będzie pasował do każdego żądania złożonego w porcie 80
. W tym przypadku robi różnicę Nazwa serwera
dyrektywa. Jeśli ta dyrektywa zostanie pominięta, serwer spróbuje uzyskać w pełni kwalifikowaną nazwę domeny (FQDN) na podstawie nazwy hosta systemu operacyjnego.
Serwer sprawdza, czy nazwa hosta określona w żądaniu pasuje do tego, że skonfigurowana za pomocą Nazwa serwera
dyrektywa, w tym przypadku www.serwer.com
. Jeśli tak, zawartość określona za pomocą DocumentRoot
dyrektywa, że jest ona służyła klientowi.
W wirtualnej konfiguracji hosta można również zdefiniować jedno lub więcej aliasów, aby dopasować wiele nazw hostów. Odbywa się to przy użyciu Serveralias
dyrektywa:
Servername www.serwer.com serveralias *.serwer.com dokumentroot/var/www/serverone
W powyższej konfiguracji dodaliśmy Serveralias
Instrukcja za pomocą wieloznacznej karty. Konfiguracja będzie teraz zgodna również z każdą subdomeną serwer.com
.
Wirtualne hosty oparte na IP
Wirtualne hosty oparte na IP, jak już widzieliśmy, są w zasadzie tym, co httpd
Domyślnie serwer używa. Podczas ich korzystania z nich możliwość obsługi wielu stron jest oparta na żądaniu klienta IP: Port
połączenie.
Samo w sobie używa tego typu hostów wirtualnych, maszyna musi mieć wiele adresów sieciowych. Nie oznacza to, że wymagane jest wiele fizycznych interfejsów sieciowych, ponieważ wiele adresów można przypisać do tego samego interfejsu (nazywa się to Aliasing IP
), a także wirtualne interfejsy (chcesz wiedzieć, jak utworzyć wirtualny interfejs sieciowy w Linux?
Spójrz na nasz artykuł na temat tworzenia wirtualnych interfejsów sieciowych w Linux. Oto dwa przykłady wirtualnych hostów opartych na IP:
Posłuchaj 8080 Servername: www.przykład.com dokumentroot "/var/www/examperone" Servername www.Exampletwo.com dokumentroot "/var/www/exampletwo"
Powyżej możemy zobaczyć, że nawet jeśli dwa wirtualne hosty mają ten sam adres IP, w drugim przykładzie określono inny port: 8080
. Aby serwer mógł słuchać tego portu, używamy Posłuchaj 8080
dyrektywa.
Wniosek
W tym samouczku widzieliśmy, jak działają wirtualne hosty Apache. Nauczyliśmy się różnicy między wirtualnymi hostami IP i nazwy oraz sposób, w jaki serwer określa, jaką konfigurację należy użyć do odpowiedzi na żądanie klienta. Spójrz na instalację artykułu Apache, jeśli chcesz dowiedzieć się więcej o tym, jak skonfigurować wirtualny host Apache.
Powiązane samouczki Linux:
- Jak migrować Apache do Nginx, przekształcając wirtualne hosty na…
- Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
- Mastering Bash Script Loops
- Rzeczy do zainstalowania na Ubuntu 20.04
- Jak skonfigurować serwer OpenVPN na Ubuntu 20.04
- GNU/Linux Ogólne Przewodnik po rozwiązywaniu problemów dla początkujących
- Jak utworzyć stos lampy na bazie Dockera za pomocą Dockera na…
- Utwórz przekieruj i przepisuj reguły do .Htaccess na Apache…
- Jak zarządzać dynamicznymi wirtualnymi hostami z Apache i…
- Jak pracować z WooCommerce Rest API z Pythonem