Konfiguracja wirtualnych hostów w Debianie: Jak ustawić wirtualne hosty w Apache i Nginx
Wstęp
Wirtualne hosty to mechanizm umożliwiający hostowanie wielu stron internetowych na jednym serwerze, dzięki czemu możemy zarządzać różnymi domenami na tej samej maszynie. Konfiguracja wirtualnych hostów w Debianie jest niezbędna, jeśli planujemy obsługiwać więcej niż jedną stronę na serwerze WWW. Dzięki tej technologii, możemy zarządzać różnymi witrynami, korzystając z różnych plików konfiguracyjnych, a także indywidualnie dostosowywać ustawienia dla każdej z domen.
W tym artykule omówimy konfigurację wirtualnych hostów w dwóch najpopularniejszych serwerach WWW: Apache i Nginx na systemie Debian.
1. Konfiguracja wirtualnych hostów w Apache na Debianie
Apache jest jednym z najczęściej używanych serwerów WWW, a jego konfiguracja wirtualnych hostów jest stosunkowo łatwa i elastyczna. Dzięki wirtualnym hostom, Apache może obsługiwać różne strony internetowe, działając na jednym serwerze.

1.1. Przygotowanie środowiska
Zanim rozpoczniesz konfigurację wirtualnych hostów w Apache, upewnij się, że masz zainstalowany Apache na systemie Debian. Jeśli nie, zainstaluj go za pomocą poniższej komendy:
sudo apt update
sudo apt install apache2
Po zakończeniu instalacji upewnij się, że Apache działa poprawnie:
sudo systemctl status apache2
1.2. Tworzenie katalogów dla wirtualnych hostów
Zanim skonfigurujesz wirtualne hosty, musisz utworzyć odpowiednie katalogi, w których będą przechowywane pliki stron internetowych. Na przykład, jeśli chcesz obsługiwać dwie strony internetowe (np. example1.com i example2.com), utwórz katalogi dla tych stron:
sudo mkdir -p /var/www/example1.com/public_html
sudo mkdir -p /var/www/example2.com/public_html
Przyznaj odpowiednie uprawnienia dla tych katalogów:
sudo chown -R www-data:www-data /var/www/example1.com/public_html
sudo chown -R www-data:www-data /var/www/example2.com/public_html
1.3. Tworzenie plików konfiguracyjnych wirtualnych hostów
W systemie Debian Apache przechowuje pliki konfiguracyjne wirtualnych hostów w katalogu /etc/apache2/sites-available. Aby utworzyć plik konfiguracyjny dla example1.com, wykonaj:
sudo nano /etc/apache2/sites-available/example1.com.conf
W pliku konfiguracyjnym dodaj poniższą zawartość:
<VirtualHost *:80>
ServerAdmin webmaster@example1.com
ServerName example1.com
DocumentRoot /var/www/example1.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Następnie stwórz plik konfiguracyjny dla example2.com:
sudo nano /etc/apache2/sites-available/example2.com.conf
Dodaj zawartość:
<VirtualHost *:80>
ServerAdmin webmaster@example2.com
ServerName example2.com
DocumentRoot /var/www/example2.com/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
1.4. Aktywacja wirtualnych hostów
Po stworzeniu plików konfiguracyjnych musisz je aktywować. Możesz to zrobić za pomocą komendy a2ensite:
sudo a2ensite example1.com.conf
sudo a2ensite example2.com.conf
Po aktywacji wirtualnych hostów, sprawdź konfigurację Apache:
sudo apache2ctl configtest
Jeśli wszystko jest w porządku, zrestartuj Apache, aby zastosować zmiany:
sudo systemctl restart apache2
1.5. Testowanie konfiguracji
Aby upewnić się, że wirtualne hosty działają poprawnie, dodaj odpowiednie wpisy do pliku /etc/hosts (na serwerze lokalnym lub w swojej sieci), aby skierować domeny example1.com i example2.com na adres IP serwera:
127.0.0.1 example1.com
127.0.0.1 example2.com
Następnie, otwórz przeglądarkę i wprowadź adresy http://example1.com oraz http://example2.com. Powinna wyświetlić się zawartość odpowiednich katalogów.
2. Konfiguracja wirtualnych hostów w Nginx na Debianie
Nginx to inny popularny serwer WWW, który również umożliwia konfigurację wirtualnych hostów. Proces konfiguracji w Nginx jest nieco inny, ale równie prosty.
2.1. Przygotowanie środowiska
Aby zainstalować Nginx na Debianie, użyj poniższej komendy:
sudo apt update
sudo apt install nginx
Po zakończeniu instalacji uruchom Nginx:
sudo systemctl start nginx
2.2. Tworzenie katalogów dla wirtualnych hostów
Podobnie jak w przypadku Apache, musisz utworzyć odpowiednie katalogi dla każdej strony internetowej. Na przykład:
sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html
Przyznaj odpowiednie uprawnienia dla katalogów:
sudo chown -R www-data:www-data /var/www/example1.com/html
sudo chown -R www-data:www-data /var/www/example2.com/html
2.3. Tworzenie plików konfiguracyjnych wirtualnych hostów
W Nginx pliki konfiguracyjne wirtualnych hostów znajdują się w katalogu /etc/nginx/sites-available. Utwórz plik konfiguracyjny dla example1.com:
sudo nano /etc/nginx/sites-available/example1.com
Dodaj poniższą zawartość:
server {
listen 80;
server_name example1.com;
root /var/www/example1.com/html;
index index.html;
access_log /var/log/nginx/example1.com.access.log;
error_log /var/log/nginx/example1.com.error.log;
}
Stwórz plik konfiguracyjny dla example2.com:
sudo nano /etc/nginx/sites-available/example2.com
Dodaj zawartość:
server {
listen 80;
server_name example2.com;
root /var/www/example2.com/html;
index index.html;
access_log /var/log/nginx/example2.com.access.log;
error_log /var/log/nginx/example2.com.error.log;
}
2.4. Aktywacja wirtualnych hostów
Po utworzeniu plików konfiguracyjnych, musisz je aktywować, tworząc dowiązania symboliczne w katalogu 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/
Sprawdź, czy konfiguracja Nginx jest poprawna:
sudo nginx -t
Jeśli wszystko jest w porządku, zrestartuj Nginx:
sudo systemctl restart nginx
2.5. Testowanie konfiguracji
Tak samo jak w przypadku Apache, dodaj odpowiednie wpisy do pliku /etc/hosts (na serwerze lokalnym lub w swojej sieci), aby skierować domeny example1.com i example2.com na adres IP serwera:
127.0.0.1 example1.com
127.0.0.1 example2.com
Teraz wprowadź adresy http://example1.com oraz http://example2.com w przeglądarce, aby upewnić się, że serwery działają poprawnie.
3. Podsumowanie
Konfiguracja wirtualnych hostów w Debianie, zarówno w Apache, jak i Nginx, jest stosunkowo prosta i bardzo użyteczna, zwłaszcza gdy chcemy hostować wiele stron na jednym serwerze. Apache oferuje bardziej rozbudowaną konfigurację z modułami, natomiast Nginx jest bardziej wydajny przy dużym ruchu. Wybór odpowiedniego serwera zależy od potrzeb Twojej aplikacji, a oba serwery oferują solidne wsparcie dla wirtualnych hostów.






