Nginx развёртывается на Ubuntu Server через установку пакета nginx, после чего настраивается через редактирование конфигурационных файлов в директории /etc/nginx/sites-available/. Виртуальные хосты создаются путём создания отдельных конфиг-файлов для каждого домена с указанием директив server.
Предварительные требования и причины настройки
- Необходим доступ к серверу с правами
sudo - Установленная ОС Ubuntu Server 20.04 LTS или новее
- Подключение к интернету для загрузки пакетов
- Несколько доменов, которые нужно размещать на одном сервере
- Необходимость балансировки нагрузки между приложениями
- Требование к высокой производительности и минимальному потреблению ресурсов
Пошаговая инструкция по развёртыванию Nginx и настройке виртуальных хостов
- Обновите список пакетов системы командой
sudo apt update - Установите Nginx командой
sudo apt install nginx - Проверьте статус сервиса командой
sudo systemctl status nginx - Откройте конфигурационный файл по умолчанию
sudo nano /etc/nginx/sites-available/default - Изучите структуру директив
server,listen,server_name,root - Создайте новый конфиг-файл для первого домена командой
sudo nano /etc/nginx/sites-available/example.com - Вставьте блок конфигурации с директивой
serverдля вашего домена - Установите директиву
listen 80для прослушивания HTTP портом - Укажите
server_name example.com www.example.comдля привязки доменов - Установите
root /var/www/example.com/htmlдля указания корневой директории сайта - Добавьте директиву
index index.html index.phpдля файлов по умолчанию - Создайте директорию сайта командой
sudo mkdir -p /var/www/example.com/html - Установите права доступа командой
sudo chown -R $USER:$USER /var/www/example.com/html - Активируйте конфиг-файл через создание символической ссылки:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com - Отключите конфиг сайта по умолчанию командой
sudo rm /etc/nginx/sites-enabled/default - Проверьте синтаксис конфигурации командой
sudo nginx -t - Перезагрузите Nginx командой
sudo systemctl reload nginx - Повторите шаги 6-17 для каждого дополнительного домена, заменив названия файлов и директорий
- Создайте тестовый файл
index.htmlв директории сайта для проверки - Откройте браузер и перейдите на адрес вашего домена для проверки работы
- Настройте автозапуск Nginx при загрузке системы командой
sudo systemctl enable nginx - Для HTTPS создайте SSL-сертификат через Let's Encrypt командой
sudo apt install certbot python3-certbot-nginx - Выполните команду
sudo certbot --nginx -d example.com -d www.example.comдля автоматической настройки SSL - Проверьте автоматическое обновление сертификатов командой
sudo systemctl enable certbot.timer
Часто задаваемые вопросы
Как добавить второй виртуальный хост на тот же сервер? Создайте новый конфиг-файл в /etc/nginx/sites-available/, укажите другой домен в директиве server_name, создайте символическую ссылку в sites-enabled и перезагрузите Nginx командой sudo systemctl reload nginx.
Что делать, если Nginx не запускается после редактирования конфига? Проверьте синтаксис командой sudo nginx -t, которая укажет строку с ошибкой, исправьте её в конфиг-файле и попробуйте снова.
Как удалить виртуальный хост? Удалите символическую ссылку из /etc/nginx/sites-enabled/ командой sudo rm /etc/nginx/sites-enabled/имя-домена, проверьте синтаксис и перезагрузите Nginx.