Jak skonfigurować wirtualne hosty w Nginx na Ubuntu ⋆ ALexHost SRL

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills
11.02.2025

Jak skonfigurować wirtualne hosty w Nginx na Ubuntu

Konfiguracja wirtualnych hostów w Nginx umożliwia hostowanie wielu witryn na jednym serwerze, przy czym każda witryna ma własną nazwę domeny. Hosty wirtualne Nginx są konfigurowane za pomocą “bloków serwera”, które definiują ustawienia dla każdej witryny. Ten przewodnik przeprowadzi cię przez konfigurację wirtualnych hostów na serwerze Ubuntu z Nginx.

1. Wymagania wstępne

  • Zainstalowany Nginx: Upewnij się, że Nginx jest zainstalowany na twoim serwerze. Jeśli nie, zainstaluj go za pomocą:
    sudo apt update
    sudo apt install nginx
  • Nazwy domen: Nazwy domen, które chcesz hostować, powinny być skierowane na adres IP serwera. Możesz zmodyfikować plik /etc/hosts do celów testowych.

2. Skonfiguruj katalogi dla każdej witryny

Każda witryna powinna mieć własny katalog do przechowywania plików witryny. Utwórzmy katalogi dla dwóch przykładowych witryn, example1.com i example2.com.

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

Przyznaj prawo własności do tych katalogów użytkownikowi Nginx (www-data), aby upewnić się, że Nginx ma niezbędne uprawnienia.

sudo chown -R www-data:www-data /var/www/example1.com/html
sudo chown -R www-data:www-data /var/www/example2.com/html

Ustaw odpowiednie uprawnienia:

sudo chmod -R 755 /var/www

3. Tworzenie przykładowej zawartości

Aby przetestować wirtualne hosty, dodaj przykładowe pliki HTML dla każdej witryny.

Example1.com:

echo "<h1>Welcome to Example1.com!</h1>" | sudo tee /var/www/example1.com/html/index.html

Example2.com:

echo "<h1>Welcome to Example2.com!</h1>" | sudo tee /var/www/example2.com/html/index.html

4. Tworzenie plików konfiguracyjnych hosta wirtualnego

Teraz utworzymy plik konfiguracyjny bloku serwera (wirtualnego hosta) dla każdej witryny. Nginx przechowuje te pliki konfiguracyjne w katalogu /etc/nginx/sites-available/.

Krok 1: Utwórz konfigurację dla Example1.com

Utwórz nowy plik konfiguracyjny dla example1.com:

sudo nano /etc/nginx/sites-available/example1.com

Dodaj następującą konfigurację:

server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

Krok 2: Tworzenie konfiguracji dla Example2.com

Utwórz plik konfiguracyjny dla example2.com:

sudo nano /etc/nginx/sites-available/example2.com

Dodaj następującą konfigurację:

server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

5. Włącz wirtualne hosty

Nginx używa dowiązań symbolicznych do włączania hostów wirtualnych. Połącz pliki konfiguracyjne z sites-available do sites-enabled:

sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/

6. Przetestuj konfigurację

Aby upewnić się, że konfiguracja nie zawiera błędów składni, uruchom ją:

sudo nginx -t

Jeśli wszystko jest poprawne, zobaczysz komunikat potwierdzający. Jeśli wystąpią błędy, Nginx wyświetli szczegóły, aby pomóc w rozwiązywaniu problemów.

7. Uruchom ponownie Nginx

Po potwierdzeniu konfiguracji uruchom ponownie Nginx, aby zastosować zmiany:

sudo systemctl restart nginx

8. Dostęp do stron internetowych

Jeśli nazwy domen są skierowane na twój serwer, powinieneś być teraz w stanie uzyskać dostęp do każdej witryny, odwiedzając ją:

  • http://example1.com
  • http://example2.com

W przypadku testów lokalnych można edytować plik /etc/hosts, aby zmapować nazwy domen na adres IP serwera. Dodaj wpisy takie jak:

127.0.0.1 example1.com 127.0.0.1 example2.com

Zapisz i zamknij plik, a następnie spróbuj uzyskać dostęp do witryn w przeglądarce.

9. Włączanie protokołu HTTPS dla każdej witryny (opcjonalnie)

Aby uzyskać bezpieczne połączenia, możesz skonfigurować certyfikaty SSL za pomocą Let’s Encrypt. Aby włączyć HTTPS:

Zainstaluj certbot:

sudo apt install certbot python3-certbot-nginx

Uruchom następujące polecenie, aby uzyskać i skonfigurować certyfikaty SSL dla każdej domeny:

sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com

Postępuj zgodnie z instrukcjami, a Certbot automatycznie skonfiguruje HTTPS w konfiguracji Nginx.

Wnioski

Konfigurując wirtualne hosty w Nginx na Ubuntu, można hostować wiele stron internetowych na jednym serwerze, każda z własną konfiguracją i zawartością. Taka konfiguracja jest wydajna i skalowalna, dzięki czemu Nginx jest doskonałym wyborem do hostowania wielu witryn na tym samym serwerze.

Sprawdź swoje umiejętności we wszystkich naszych usługach hostingowych i otrzymaj 15% zniżki!

Użyj kodu przy kasie:

Skills