Найти в Дзене

Настройка виртуальных хостов Nginx в Ubuntu, или как разместить несколько сайтов на одном сервере.

Данное руководство покажет, как настроить виртуальные хосты Nginx на сервере Ubuntu. Допустим у нас есть два домена и мы хотим разместить их на одном сервере. В моем случае это будет домен free-calc.online и test.com. Не забудьте заменить их своими доменными именами. Каталоги Document Root По умолчанию в Ubuntu включен один стандартный виртуальный хост Nginx, который обслуживает документы из каталога: /var/www/html Для обслуживания нескольких сайтов нужно создать дополнительные каталоги. Каталог /var/www/html будет использоваться в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует ни одному из других сайтов. Для каждого сайта, создаем свою директорию: sudo mkdir -p /var/www/free-calc.online/html
sudo mkdir -p /var/www/test.com/html В зависимости от требований сервера вам может потребоваться повторно настроить права доступа или права собственности на папки, чтобы разрешить доступ к пользователю www-data. В этом, как правило, часто ну
Оглавление

Данное руководство покажет, как настроить виртуальные хосты Nginx на сервере Ubuntu.

Допустим у нас есть два домена и мы хотим разместить их на одном сервере. В моем случае это будет домен free-calc.online и test.com. Не забудьте заменить их своими доменными именами.

Каталоги Document Root

По умолчанию в Ubuntu включен один стандартный виртуальный хост Nginx, который обслуживает документы из каталога:

/var/www/html

Для обслуживания нескольких сайтов нужно создать дополнительные каталоги. Каталог /var/www/html будет использоваться в качестве каталога по умолчанию, который будет обслуживаться, если запрос клиента не соответствует ни одному из других сайтов.

Для каждого сайта, создаем свою директорию:

sudo mkdir -p /var/www/free-calc.online/html
sudo mkdir -p /var/www/test.com/html

В зависимости от требований сервера вам может потребоваться повторно настроить права доступа или права собственности на папки, чтобы разрешить доступ к пользователю www-data. В этом, как правило, часто нуждаются динамические сайты. Конечно, привилегии доступа полностью зависят от конфигурации сервера. Используйте переменную окружения $USER, чтобы задать текущего пользователя. Это позволит создавать файлы в этих каталогах:

sudo chown -R $USER:$USER /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/test.com/html

Теперь права на эти каталоги установлены верно, если ранее значение umask не было изменено. Это можно проверить при помощи команды:

sudo chmod -R 755 /var/www

Создание страниц для сайтов


После создания директорий, можно переходить к созданию временных страниц сайтов, чтобы можно было убедиться, что у нас все работает и на каждом домене находится свой сайт.

Создайте страницу index.html для первого сайта.

nano /var/www/free-calc.online/html/index.html

В этот файл вставьте следующий код:

<h1>Это free-calc.online</h1>

Создайте страницу index.html для второго сайта.

nano /var/www/test.com/html/index.html

В этот файл вставьте следующий код:

<h1>Это test.com</h1>

Тестовые страницы сайтов готовы.

Создание виртуальных хостов

Приступаем к созданию конфигов для Nginx. По умолчанию Nginx содержит один конфиг по имени default, который можно использовать в качестве шаблона. Находится он в директории:

/etc/nginx/sites-available/default

Создаем конфиг для первого сайта. Скопируйте стандартный файл default:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/free-calc.online

Откроем новый конфиг в текстовом редакторе:

sudo nano /etc/nginx/sites-available/free-calc.online

Не учитывая закомментированных строк, этот файл выглядит так:

server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.html index.htm index.nginx-debian.html;
server_name _;
location / {
try_files $uri $uri/ =404;
}
}

Приводим его к следующему виду:

server {
listen 80;
listen [::]:80;
root /var/www/free-calc.online/html;
index index.html index.htm index.nginx-debian.html;
server_name free-calc.online;
location / { try_files $uri $uri/ =404; } }
}

По аналогии настраиваем второй конфиг.

Базовая настройка виртуального хоста завершена.

Включение виртуальных хостов

Теперь виртуальные хосты готовы, но их нужно активировать.Для этого нужно создать символьные ссылки из этих файлов в каталог sites-enabled, который читается веб-сервером Nginx во время запуска.

sudo ln -s /etc/nginx/sites-available/free-calc.online /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Проверяем синтаксис на наличие ошибок:

sudo nginx -t

Если ошибок нет, перезапускаем Nginx, чтобы обновить настройки:

sudo systemctl restart nginx

Теперь Nginx обслуживает два домена.