Wyszukiwanie w witrynie

Twórz wirtualne hosty oparte na nazwach Apache i IP w systemie Linux


Hosting wirtualny to koncepcja, w ramach której wiele witryn internetowych lub domen jest hostowanych na jednym serwerze, co ma na celu zmniejszenie ogólnych zasobów i kosztów bieżących firmy lub organizacji.

Serwer WWW Apache upraszcza hosting wielu witryn, umożliwiając administratorom systemu łatwą konfigurację wirtualnych hostów dla każdej witryny. Hosting wirtualny może być oparty na adresie IP lub na nazwie.

W tym samouczku omawiamy, jak skonfigurować hosting wirtualny w dystrybucjach opartych na RHEL, takich jak Fedora, CentOS Stream, Rocky Linux i Alma Linux korzystająca zarówno z hostów wirtualnych opartych na adresach IP, jak i na nazwach w systemie Linux.

Koncepcje hostingu współdzielonego i hostingu internetowego sprzedawcy opierają się głównie na tej funkcji Apache.

Rodzaje wirtualnego hostingu Apache w systemie Linux

Istnieją dwa rodzaje hostingu wirtualnego dostępnego w Apache.

Hosting wirtualny oparty na nazwie

W przypadku tego typu hostingu na jednym serwerze można hostować kilka domen lub witryn internetowych przy użyciu tylko jednego adresu IP. Mówiąc najprościej, wszystkie domeny będą miały ten sam adres IP. Jest to najłatwiejszy do skonfigurowania typ hostingu wirtualnego, ponieważ wystarczy zmapować nazwy domen na adres IP, a następnie skonfigurować wirtualne hosty Apache dla każdej nazwy domeny.

Hosting wirtualny oparty na protokole IP

Hosting wirtualny oparty na protokole IP polega na tym, że każdej domenie przypisany jest unikalny adres IP. Te adresy IP można przyłączyć do serwera przy użyciu wielu kart NIC lub pojedynczej karty NIC.

Środowisko testowe

  • OSFedora 34
  • AplikacjaSerwer WWW Apache
  • Adres IP192.168.2.105
  • Adres IP192.168.2.106
  • Domenawww.mojadomena1.com
  • Domenawww.mydomain2.com

Jak skonfigurować wirtualne hosty Apache oparte na adresach IP i nazwach

Zanim zaczniesz, upewnij się, że serwer WWW Apache jest zainstalowany w Twoim systemie, używając polecenia dnf, jak pokazano.

sudo dnf install httpd -y

Skonfiguruj hosting wirtualny oparty na nazwie

Pierwszym krokiem podczas konfigurowania hostingu wirtualnego opartego na nazwach jest skonfigurowanie rozpoznawania nazw domen w pliku /etc/hosts. Dlatego uruchom następujące polecenia jako użytkownik root, aby dodać wpisy nazw domen wskazujących adres IP hosta.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.105 www.mydomain2.com' >> /etc/hosts

Kolejnym krokiem jest utworzenie katalogu, który będzie zawierał pliki strony internetowej. Dlatego utworzymy dwa katalogi dla wirtualnych hostów w katalogu głównym dokumentów, którym jest folder /var/www/html w konfiguracji Apache.

sudo mkdir /var/www/html/mydomain1.com/
sudo mkdir /var/www/html/mydomain2.com/

Następnym krokiem jest modyfikacja pliku hosta wirtualnego, który poinstruuje adres IP Apache, aby nasłuchiwał przychodzących żądań serwera WWW Apache dla wszystkich nazw domen. Dlatego otwórz plik konfiguracyjny Apache przy użyciu preferowanego edytora tekstu.

sudo vim /etc/httpd/conf/httpd.conf

Dodaj następujące bloki kodu dla dwóch hostów wirtualnych.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.105:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Zapisz zmiany i wyjdź. Następnie sprawdź, czy składnia jest w porządku i czy nie ma błędów.

httpd -t

Następnie utworzymy strony testowe HTML dla każdej domeny i dodamy trochę treści, aby potwierdzić, czy wszystko działa poprawnie z poziomu przeglądarki.

Dla mojadomena1.com

Utwórz plik index.html w katalogu mojadomena1.com.

sudo vim /var/www/html/mydomain1.com/index.html 

Wklej następujące linie.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain1.com.</h1>
  </body>
</html>

Zapisz zmiany i zamknij plik.

Dla mojadomena2.com

Utwórz plik index.html w katalogu mojadomena2.com.

sudo vim /var/www/html/mydomain2.com/index.html 

Wklej następujące linie.

<html>
  <head>
    <title>My sample site</title>
  </head>
  <body>
    <h1>Success! Welcome to mydomain2.com.</h1>
  </body>
</html>

Zapisz zmiany i zamknij plik.

Teraz uruchom serwer WWW Apache i potwierdź, że działa.

sudo systemctl start httpd
sudo systemctl status httpd

Jeśli masz włączoną zaporę sieciową, zezwól na ruch HTTP i HTTPS (w razie potrzeby).

sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

Teraz przetestuj domeny z poziomu przeglądarki.

Skonfiguruj wirtualny hosting oparty na protokole IP Linux

Hosting wirtualny oparty na protokole IP, jak sama nazwa wskazuje, obejmuje wiele adresów IP przypisanych do Twojego serwera Linux. W większości przypadków do systemu podłączone są dwie lub więcej kart NIC, aby zapewnić wiele adresów IP.

Celem wirtualnego hostingu opartego na protokole IP jest przypisanie każdej domeny do unikalnego adresu IP, który nie będzie używany przez żadną inną domenę.

Jest to idealne rozwiązanie w sytuacjach, gdy masz strony internetowe zaszyfrowane certyfikatem SSL (mod_ssl) lub działające na różnych portach. W naszej konfiguracji mamy dwa adaptery NIC.

Aby wyświetlić konfigurację protokołu IP w systemie, uruchom polecenie ifconfig lub ip a.

ifconfig
OR
ip addr

Nasz serwer ma dwa adresy IP, każdy przypisany do jednej karty sieciowej. Adres IP 192.168.2.106 jest przypisany do ens160, a 192.168.2.105 jest przypisany do ens224.

Jeszcze raz skonfigurujmy plik httpd.conf.

sudo vim /etc/httpd/conf/httpd.conf

Utwórz wirtualne hosty dla obu domen, jak pokazano. Upewnij się, że każdy adres IP jest przypisany do odpowiedniej konfiguracji hosta wirtualnego.

<VirtualHost 192.168.2.105:80>
   ServerName mydomain1.com
   ServerAlias www.mydomain1.com
   DocumentRoot /var/www/html/mydomain1.com/
ErrorLog logs/www.mydomain1.com-error_log
CustomLog logs/www.mydomain1.com-access_log common
</VirtualHost>


<VirtualHost 192.168.2.106:80>
    ServerName mydomain2.com
    ServerAlias www.mydomain2.com
    DocumentRoot /var/www/html/mydomain2.com
ErrorLog logs/www.mydomain2.com-error_log
CustomLog logs/www.mydomain2.com-access_log common
</VirtualHost>

Zapisz i wyjdź z pliku konfiguracyjnego. Następnie zmodyfikuj plik /etc/hosts, jak pokazano.

echo '192.168.2.105 www.mydomain1.com' >> /etc/hosts
echo '192.168.2.106 www.mydomain2.com'>> /etc/hosts

Potwierdź wpisy:

cat /etc/hosts

192.168.2.105 www.mydomain1.com
192.168.2.106 www.mydomain2.com

Następnie zrestartuj serwer Apache, aby zmiany zaczęły obowiązywać.

sudo systemctl restart httpd

Na koniec przetestuj konfigurację wirtualnego hostingu opartą na protokole IP, uzyskując dostęp do adresów URL, jak pokazano.

http://192.168.2.105
http://192.168.2.106

Ten test potwierdza, że wirtualny hosting oparty na protokole IP działa zgodnie z oczekiwaniami!

Wniosek

I to tyle w tym wykładzie. Mamy nadzieję, że bez większych problemów skonfigurujesz obydwa rodzaje wirtualnego hostingu. Twoja opinia na temat tego przewodnika jest dla nas bardzo cenna.