Powrót do bloga

Konfiguracja wirtualnych hostów Apache na Ubuntu 20.04

Konfiguracja wirtualnych hostów Apache na Ubuntu 20.04

Apache jest obecnie najczęściej używanym serwerem WWW na świecie. Jest to oprogramowanie o otwartym kodzie źródłowym utrzymywane przez The Apache Software Foundation. Według stanu na wrzesień 2020 r. szacuje się, że obsługuje on 36% całego ruchu na stronach internetowych na świecie. Programiści uwielbiają go za szybkość, bezpieczeństwo, niezawodność i solidność. Łatwość dostosowywania pozwala mu spełniać potrzeby wielu środowisk poprzez instalację rozszerzeń i modułów.

Apache jest wyposażony w system dopasowywania, którego można użyć do hostowania wielu domen lub witryn przy użyciu pojedynczej instalacji serwera Apache udostępnionej na jednym adresie IP. Domeny lub witryny są konfigurowane w jednym z plików konfiguracyjnych Apache zdefiniowanych jako wirtualne hosty.

Każda domena ma jedną definicję wirtualnego hosta ze specyficznym katalogiem, do którego kieruje. Gdy użytkownik odwiedza domenę, serwer bada każdy pasujący wirtualny host i wybiera, którego użyć do obsługi żądania odwiedzającego, w zależności od wprowadzonej nazwy hosta. Jeśli nie zostanie znaleziona pasująca nazwa hosta, serwer używa pierwszego zdefiniowanego wirtualnego hosta w pliku conf jako rozwiązania awaryjnego. Odwiedzający uzyska dostęp do żądanej strony internetowej, nie wiedząc, że ten sam serwer obsługuje inne witryny. W zależności od zasobów, jakimi dysponujesz na swoim serwerze, oraz od tego, jak duży ruch może on obsłużyć, możesz hostować tyle domen, ile chcesz.

W tym poradniku przeprowadzimy Cię przez proces konfiguracji wirtualnych hostów na serwerze Ubuntu 20.04.

Na początek

Aby móc postępować zgodnie z tym poradnikiem, powinieneś mieć zainstalowany system Ubuntu 20.04. Musisz także utworzyć użytkownika bez uprawnień roota i zalogować się na niego.

Kroki opisane w tym poradniku wymagają również zainstalowania serwera Apache. Jeśli jeszcze tego nie zrobiłeś, możesz go zainstalować za pomocą poniższych poleceń. Możesz skorzystać z naszego poradnika instalacji stosu LAMP – Linux Apache MySQL PHP, aby uzyskać bardziej szczegółowy przewodnik po konfiguracji.

Powinieneś mieć zarejestrowane darmowe lub płatne nazwy domen u wybranego rejestratora domen. Upewnij się, że domeny wskazują na Twój serwer poprzez konfigurację rekordów DNS. Możesz jednak nadal korzystać z naszych konfiguracji, aby przejść przez kroki opisane w tym poradniku. W tym poradniku będziemy używać domen example.dev i mydomain.com. Możesz je dowolnie zastąpić własnymi. Jeśli zdecydujesz się na użycie domen testowych, pliki hosts muszą zostać edytowane, aby obsługiwać te domeny. Omówimy, jak to zrobić, w dalszej części poradnika.

Krok 1 – Konfiguracja katalogów stron internetowych

Są to katalogi przechowujące dane witryny, do których będą uzyskiwać dostęp odwiedzający Twoją stronę. Główny katalog dokumentów Apache (document root) dostępny z Internetu znajduje się zazwyczaj w /var/www. To tutaj utworzymy katalogi dla poszczególnych domen, które chcemy hostować. W każdym z tych katalogów dodamy katalog public_html, który będzie zawierał rzeczywiste pliki strony internetowej. Wirtualny host wskazuje na katalog public_html. Daje to elastyczność, ponieważ kluczowe pliki witryny można przechowywać poza public_html, a wewnątrz umieszczać tylko pliki publiczne.

Następnie wprowadź poniższe polecenia, aby utworzyć katalogi. Zawsze pamiętaj, aby w kolejnych krokach zastąpić domeny testowe swoimi rzeczywistymi domenami:

Krok 2 – Zmiana uprawnień do odczytu i zapisu

Poprzednie polecenia utworzyły strukturę katalogów, ale zachowały własność dla użytkownika root. Chcemy, aby nasz użytkownik bez uprawnień roota miał pełne uprawnienia do odczytu i zapisu w tych katalogach. Chcemy również, aby ogół użytkowników sieci miał uprawnienia do odczytu.

Najpierw zmień właściciela na użytkownika bez uprawnień roota, wprowadzając następujące polecenie:

Zmienna $USER to zmienna, która przyjmuje dane uwierzytelniające aktualnie zalogowanego użytkownika. Zwykły użytkownik jest teraz właścicielem public_html. Następnie należy przyznać uprawnienia do odczytu dla ogółu sieci. Poniższe polecenie nadaje uprawnienia do wszystkich plików w katalogu, zapewniając prawidłowe serwowanie stron internetowych:

Dzięki uruchomieniu trzech poprzednich poleceń Twoja witryna może teraz serwować zawartość. Ponadto Twój użytkownik może również tworzyć zawartość do serwowania w określonych katalogach. Tutaj znajdziesz więcej informacji na temat uprawnień w systemie Ubuntu.

Krok 3 – Tworzenie stron demonstracyjnych w katalogach dla każdego wirtualnego hosta

Po przygotowaniu struktury katalogów nadszedł czas na napisanie prostego kodu. Będziemy używać HTML oraz edytora tekstu nano, aby utworzyć podstawowe strony internetowe. Wprowadź poniższe polecenie, aby otworzyć nano i utworzyć plik index.html w katalogu dla pierwszej domeny:

W edytorze umieść następujący przykładowy kod, który wyświetli się po przejściu do domeny:

Po wklejeniu powyższych linii naciśnij “!wq”, aby zapisać i zamknąć plik.

Utwórz stronę index.html dla drugiej domeny za pomocą edytora nano, wprowadzając następujące polecenie:

Następnie wklej w edytorze poniższy kod HTML, zapisz i wyjdź:

 

Teraz masz już strony do przetestowania dwóch wirtualnych hostów, które utworzymy w następnym kroku.

Krok 4 – Tworzenie plików wirtualnych hostów dla nazw domen

Pliki wirtualnych hostów zawierają konfiguracje dla każdego wirtualnego hosta. Określają one, jak dana nazwa domeny będzie obsługiwana. Nowa instalacja Apache zawiera domyślny plik wirtualnego hosta o nazwie 000-default.conf, który możemy wykorzystać i dostosować do naszych domen. Jak widać, kończy się on rozszerzeniem .conf, którego system Ubuntu wymaga dla plików konfiguracyjnych.

Pliki konfiguracyjne Apache znajdują się w katalogu /etc/apache2/sites-available. Tam będziemy przechowywać nasze pliki wirtualnych hostów. Możemy skopiować domyślny plik konfiguracyjny i edytować go w razie potrzeby.

  • Utwórz pierwszy plik wirtualnego hosta dla domeny example.dev

Wprowadź poniższe polecenie, aby utworzyć plik example.dev.conf poprzez skopiowanie domyślnego pliku konfiguracyjnego:

Następnie otwórz utworzony plik za pomocą edytora nano z uprawnieniami sudo, używając następującego polecenia:

Domyślny plik konfiguracyjny wygląda jak na poniższym zrzucie ekranu. Komentarze mają charakter pomocniczy. Możemy je usunąć i pozostawić tylko czysty plik z rzeczywistymi liniami konfiguracji:

default configuration

Musisz dostosować ten plik do swojej nazwy domeny i ścieżki katalogu, w którym zapisałeś pliki strony internetowej. Ponadto zaktualizujemy i dodamy do pliku kilka dyrektyw. Zawiera on już dyrektywę ServerAdmin, która zawiera adres e-mail, na który administrator serwera będzie otrzymywać wiadomości. Posiada również dyrektywę DocumentRoot, która wskazuje katalog, w którym przechowywane są pliki strony internetowej.

Musimy dodać dwie nowe dyrektywy: ServerName i ServerAlias. ServerName ustawia bazową nazwę domeny. To tutaj wpisujesz swoją domenę. ServerAlias definiuje inne nazwy, które Apache powinien dopasować tak, jakby były bazową nazwą domeny. Pozwala to na dopasowanie hostów takich jak www.

Zaktualizuj plik, aby wyglądał tak, jak pokazano poniżej:

Następnie odpowiednio zaktualizuj swoje domeny i adres e-mail. Po zakończeniu naciśnij CTRL + O i ENTER, aby zapisać plik. Aby wyjść z edytora, naciśnij CTRL + X.

  • Utwórz pierwszy plik wirtualnego hosta dla domeny mydomain.com

Możemy po prostu skopiować wirtualnego hosta dla pierwszej domeny i zaktualizować go tam, gdzie to konieczne, dla drugiej domeny. Użyj następującego polecenia, aby skopiować plik:

Następnie otwórz go w edytorze nano za pomocą polecenia:

Znajdź dyrektywy i odpowiednio je zaktualizuj, aby plik wyglądał tak, jak pokazano poniżej:

Po zakończeniu zapisz plik i wyjdź z edytora.

Krok 5 – Włączanie plików wirtualnych hostów

W kroku czwartym utworzyliśmy pliki wirtualnych hostów. Nie będą one jednak działać, dopóki ich nie włączysz. Apache posiada narzędzie o nazwie a2ensite, którego użyjemy do włączenia wirtualnych hostów.

Wprowadź następujące dwa polecenia, aby włączyć wirtualne hosty:

Wynik powyższych poleceń jest pokazany poniżej:

Apache еnable configuration

Następnie należy wyłączyć domyślny plik konfiguracyjny. Do wyłączania stron używamy narzędzia Apache a2dissite. Wprowadź następujące polecenie:

Jak widać z danych wyjściowych, musisz zrestartować Apache, aby konfiguracje zostały zastosowane. Użyj następującego polecenia:

Następnie sprawdź status Apache za pomocą następującego polecenia:

Wynik pokazuje, że Twój serwer działa i jest w stanie obsługiwać obie strony internetowe.

Apache 2 status

Krok 6 – Zmodyfikuj lokalny plik hosts przy użyciu przykładowych domen

Jeśli nie zarejestrowałeś rzeczywistej domeny, lecz używasz domen testowych, musisz zaktualizować lokalny plik hosts. Musi on przechwytywać ruch i kierować go do katalogu Twojej witryny, gdy przejdziesz do dowolnej z domen ustawionych w plikach wirtualnych hostów. Pamiętaj, że zadziała to tylko na Twoim lokalnym komputerze. Jeśli Twój lokalny komputer działa pod kontrolą systemu operacyjnego Windows, to postępuj zgodnie z instrukcjami konfiguracji pliku hosts pod tym linkiem.

Jeśli korzystasz z systemu Mac lub Linux, plik hosts znajduje się w katalogu /etc. Użyjemy edytora nano, aby go otworzyć i dodać nasze testowe domeny. Najpierw znajdź adres IP swojego serwera VPS, wpisując następujące polecenie:

Wpisz następujące polecenie, aby otworzyć plik i zaktualizować go o adres IP swojego serwera:

Następnie zapisz i zamknij plik. Za każdym razem, gdy wpisujesz nazwę domeny w przeglądarce, najpierw sprawdzany jest plik hosts. Jeśli nazwa domeny zostanie znaleziona, ruch jest kierowany na określony adres IP. Jeśli nie zostanie znaleziona, do globalnego przekierowania używany jest system DNS. W przypadku naszych domen testowych ruch zostanie skierowany na określony adres IP.

Krok 7 – Przetestuj swoje wirtualne hosty

Po skonfigurowaniu nazw domen możesz przetestować, czy działają, sprawdzając je w przeglądarce/terminalu:

Wynik powinien wyglądać mniej więcej tak:
curl example.dev

Apache curl mydomain.com

Gratulacje! Pomyślnie skonfigurowano dwie strony internetowe do działania na jednym serwerze.

Podsumowanie

W tym poradniku dowiedziałeś się, jak skonfigurować serwer Apache do obsługi więcej niż jednej strony internetowej. Jeśli chcesz dodać więcej witryn, możesz to zrobić, wykonując te same kroki i konfigurując wirtualne hosty. Apache może obsłużyć tyle domen, ile chcesz, o ile pozwalają na to zasoby Twojego serwera.

Udanego korzystania!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev jest projektantem kreatywnym w CloudSigma, skupiającym się na spójnej tożsamości biznesowej przy wykorzystaniu tradycyjnych i innowacyjnych kanałów marketingowych. Biegle łączy wizję artystyczną ze strategicznym marketingiem, tworząc wywierające wpływ narracje marki.

Komentarze

Brak komentarzy. Bądź pierwszy.