Найти в Дзене
Александр Бобков

Как настроить Nginx Server Blocks на Unix (Ubuntu)

Оглавление

Nginx Server Blocks позволяют запускать более одного вебсайта на одной машине. Используя Server Blocks, можно указать главный сайт, создать различные условия и настройки, а так же использовать разные SSL сертификаты для каждого сайта отдельно.

В этой статье мы научимся настраивать Nginx server blocks в Ubuntu.

Предусловия

Перед тем как приступить, убедитесь что все условия соблюдены:

1. Ваш домен указывает на публичный IP вашего сервера;

2. Установлен nginx;

3. Вы вошли в систему как root пользователь.

Создание директорий

Корневая директория сайта, в которой будут находиться все файлы сайта, должна лежать в корне пути /var/www/

Структура будет выглядеть следующим образом:

/var/www/
├──
example.com
│   └── public_html
├──
example2.com
│   └── public_html
├──
example3.com
│   └── public_html

Мы создадим отдельные директории для каждого сайта в /var/www, названия могут быть какими угодно, но для удобства лучше назвать их так как и сам домен. Каждая из этих директорий должна содержать папку с названием public_html, это как раз и будет та директория, в которой будут хоститься файлы сайта.

Начнем с создания корневой директории для домена example.com

sudo mkdir -p /var/www/example.com/public_html

Далее создаем index.html

sudo nano /var/www/example.com/public_html/index.html

Открываем index.html и добавляем следующие строки

<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to example.com</title>
</head>
<body>
<h1>Success! example.com home page!</h1>
</body>
</html>

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

sudo chown -R www-data: /var/www/example.com

Создание Server Block

Поумолчанию в Ubuntu файлы конфигурации Nginx server blocks находятся в /etc/nginx/sites-available, которые связываются символичискими ссылками с /etc/nginx/sites-enabled.

Создаём новый файл конфигурации:

sudo vi /etc/nginx/sites-available/example.com.conf

Добавляем следующие строки:

server {
listen 80;
listen [::]:80;
root /var/www/example.com/public_html;
index index.html;
server_name example.com www.example.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}

Файлы конфигурации можно называть любым именем, но лучше всего называть так же как и домен.

Создаём символическую ссылку в sites-enabled:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Проверяем файл конфигурации Nginx на синтаксические ошибки:

sudo nginx -t

Если ошибок нет, то должно появиться такое сообщение:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Теперь осталось перезагрузить Nginx:

sudo systemctl restart nginx

Всё готово, ваш сайт должен быть доступен по домену который вы использовали при настройке сайта.