Hostuj wiele domen na jednym serwerze lub adresie IP za pomocą Apache lub Nginx

Nauczmy się, jak skonfigurować Apache i Nginx do hostowania wielu stron internetowych.

Hosting witryn na serwerze w chmurze zapewnia dużą elastyczność w porównaniu do hostingu współdzielonego. Możesz zainstalować wszystko, co chcesz, skalować w górę lub w dół i skonfigurować w celu uzyskania lepszej wydajności i optymalizacji kosztów.

Jeśli prowadzisz wiele witryn biznesowych, ale nie chcesz hostować ich osobno, możesz skorzystać z Virtual Server na serwerach WWW. Przyjrzyjmy się temu scenariuszowi.

Mam następujące dwie witryny, które chciałbym wskazać na moją jedną maszynę wirtualną w chmurze.

Przed wdrożeniem zrozummy, jak to działa.

Koncepcja posiadania wielu stron internetowych na jednej instancji serwera WWW nosi nazwę Virtual Server. Jest zdefiniowany w pliku konfiguracyjnym wraz z adresem URL. Gdy żądanie jest wysyłane do określonego adresu URL, serwer sieciowy obsługuje ruch z odpowiedniego katalogu głównego dokumentu.

Skonfiguruj Virtual Host w Apache, aby hostować wiele domen

  • Zaloguj się do serwera HTTP Apache
  • Przejdź do lokalizacji konfiguracji Apache. (w domyślnej instalacji – znajdziesz go tutaj /etc/httpd/conf/httpd.conf)
  • Zrób kopię zapasową pliku httpd.conf
  • Utwórz kontener VirtualHost, jak poniżej, zrobiłem dla dwóch domen.
<VirtualHost *:80>
ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/lab
   ServerName lab.newsblog.pl.com
   ErrorLog logs/lab.newsblog.pl.com-error_log
   CustomLog logs/lab.newsblog.pl.com-access_log common
</VirtualHost>

<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /opt/htdocs/gf-dev
   ServerName gf.dev
   ErrorLog logs/gf.dev-error_log
   CustomLog logs/gf.dev-access_log common
</VirtualHost>

Uwaga: Zmień wartość dla ServerAdmin, DocumentRoot, ServerName, ErrorLog, CustomLog na podstawie swoich wymagań.

  • Uruchom ponownie Apache HTTP i przetestuj oba adresy URL.

Skonfiguruj Virtual Host w Nginx, aby hostować wiele domen

  • Zaloguj się do serwera Nginx
  • Przejdź do lokalizacji, w której zainstalowałeś Nginx. (w domyślnej lokalizacji – znajdziesz go tutaj /etc/nginx/)

Istnieje wiele sposobów, aby to osiągnąć. Możesz zmodyfikować plik nginx.conf lub plik niestandardowy, jeśli taki posiadasz. Możesz także utworzyć plik custom.conf w folderze conf.d. Wybierz, co Ci odpowiada i wykonaj kopię zapasową, jeśli modyfikujesz istniejący plik.

  • Utwórz blok serwera dla obu adresów URL, jak pokazałem poniżej.
server {
listen 80;
   root /opt/htdocs/lab;
index index.html index.htm;
   server_name lab.newsblog.pl.com;
   location / {
       try_files $uri $uri/ =404;
   }
}

server {
   listen 80;
   root /opt/htdocs/gf-dev;
   index index.html index.htm;
   server_name gf.dev;
   location / {
       try_files $uri $uri/ =404;
   }
}

Uwaga: Zmień wartość root, server_name na podstawie swoich wymagań.

  • Uruchom ponownie Nginx i przetestuj oba adresy URL

Nie zapomnij zaktualizować rekordu DNS swojego adresu URL, aby był mapowany na adres IP serwera. Po zakończeniu powinieneś mieć dostęp do adresów URL, które są obsługiwane w ramach powyższej konfiguracji.

Wniosek

To był krótki przewodnik po hostowaniu wielu domen w jednej instancji serwera WWW, takiego jak Apache lub Nginx. Po uruchomieniu witryny nie zapomnij przetestować jej pod kątem luk w zabezpieczeniach.

Podobał Ci się artykuł? A co powiesz na dzielenie się ze światem?