Як налаштувати віртуальні хости в Nginx на Ubuntu ⋆ ALexHost SRL

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
11.02.2025

Як налаштувати віртуальні хости в Nginx на Ubuntu

Налаштування віртуальних хостів в Nginx дозволяє розміщувати кілька веб-сайтів на одному сервері, кожен з яких має власне доменне ім’я. Віртуальні хости Nginx налаштовуються за допомогою “серверних блоків”, які визначають налаштування для кожного веб-сайту. Цей посібник допоможе вам налаштувати віртуальні хости на сервері Ubuntu за допомогою Nginx.

1. Передумови

  • Nginx встановлено: Переконайтеся, що Nginx встановлено на вашому сервері. Якщо ні, встановіть його за допомогою:
    sudo apt update
    sudo apt install nginx
  • Доменні імена: Вкажіть доменні імена, які ви хочете розмістити, на IP-адресу вашого сервера. Ви можете змінити файл /etc/hosts для тестування.

2. Налаштування каталогів для кожного веб-сайту

Кожен веб-сайт повинен мати власний каталог для зберігання файлів веб-сайту. Давайте створимо каталоги для двох прикладів веб-сайтів example1.com і example2.com.

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

Надайте права власності на ці каталоги користувачеві Nginx (www-data), щоб переконатися, що Nginx має необхідні дозволи.

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

Встановіть відповідні дозволи:

sudo chmod -R 755 /var/www

3. Створення зразка вмісту

Щоб протестувати віртуальні хости, додайте зразки HTML-файлів для кожного сайту.

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. Створення файлів конфігурації віртуального хоста

Тепер ми створимо файл конфігурації серверного блоку (віртуального хоста) для кожного сайту. Nginx зберігає ці конфігураційні файли в каталозі /etc/nginx/sites-available/.

Крок 1: Створення конфігурації для Example1.com

Створіть новий конфігураційний файл для example1.com:

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

Додайте наступну конфігурацію:

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;
}
}

Крок 2: Створення конфігурації для Example2.com

Створіть файл конфігурації для example2.com:

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

Додайте наступну конфігурацію:

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. Увімкніть віртуальні хости

Nginx використовує символічні посилання для ввімкнення віртуальних хостів. З’єднайте конфігураційні файли з сайтів-available до сайтів-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. Перевірте конфігурацію

Щоб переконатися, що у вашій конфігурації немає синтаксичних помилок, запустіть її:

sudo nginx -t

Якщо все правильно, ви побачите повідомлення з підтвердженням. Якщо є помилки, Nginx покаже деталі, які допоможуть вам усунути їх.

7. Перезапуск Nginx

Після підтвердження конфігурації перезапустіть Nginx, щоб застосувати зміни:

sudo systemctl restart nginx

8. Доступ до веб-сайтів

Якщо доменні імена вказують на ваш сервер, ви зможете отримати доступ до кожного сайту, відвідавши його:

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

Для локального тестування ви можете відредагувати файл /etc/hosts, щоб прив’язати доменні імена до IP-адреси вашого сервера. Додайте записи на кшталт:

127.0.0.1 example1.com 127.0.0.1 example2.com

Збережіть і закрийте файл, а потім спробуйте зайти на сайти в браузері.

9. Увімкнення HTTPS для кожного сайту (необов’язково)

Для безпечного з’єднання ви можете налаштувати SSL-сертифікати за допомогою Let’s Encrypt. Щоб увімкнути HTTPS:

Встановіть certbot:

sudo apt install certbot python3-certbot-nginx

Запустіть наступну команду, щоб отримати і налаштувати SSL-сертифікати для кожного домену:

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

Дотримуйтесь підказок, і Certbot автоматично налаштує HTTPS у вашій конфігурації Nginx.

Висновок

Налаштувавши віртуальні хости в Nginx на Ubuntu, ви можете розмістити кілька веб-сайтів на одному сервері, кожен зі своєю конфігурацією і контентом. Таке налаштування є ефективним і масштабованим, що робить Nginx чудовим вибором для розміщення декількох сайтів на одному сервері.

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills