Веб сервер Nginx и настроить виртуальные хосты на Ubuntu Server

Как развернуть веб сервер Nginx и настроить виртуальные хосты на Ubuntu Server

Nginx развёртывается на Ubuntu Server через установку пакета nginx, после чего настраивается через редактирование конфигурационных файлов в директории /etc/nginx/sites-available/. Виртуальные хосты создаются путём создания отдельных конфиг-файлов для каждого домена с указанием директив server.

Предварительные требования и причины настройки

  • Необходим доступ к серверу с правами sudo
  • Установленная ОС Ubuntu Server 20.04 LTS или новее
  • Подключение к интернету для загрузки пакетов
  • Несколько доменов, которые нужно размещать на одном сервере
  • Необходимость балансировки нагрузки между приложениями
  • Требование к высокой производительности и минимальному потреблению ресурсов

Пошаговая инструкция по развёртыванию Nginx и настройке виртуальных хостов

  1. Обновите список пакетов системы командой sudo apt update
  2. Установите Nginx командой sudo apt install nginx
  3. Проверьте статус сервиса командой sudo systemctl status nginx
  4. Откройте конфигурационный файл по умолчанию sudo nano /etc/nginx/sites-available/default
  5. Изучите структуру директив server, listen, server_name, root
  6. Создайте новый конфиг-файл для первого домена командой sudo nano /etc/nginx/sites-available/example.com
  7. Вставьте блок конфигурации с директивой server для вашего домена
  8. Установите директиву listen 80 для прослушивания HTTP портом
  9. Укажите server_name example.com www.example.com для привязки доменов
  10. Установите root /var/www/example.com/html для указания корневой директории сайта
  11. Добавьте директиву index index.html index.php для файлов по умолчанию
  12. Создайте директорию сайта командой sudo mkdir -p /var/www/example.com/html
  13. Установите права доступа командой sudo chown -R $USER:$USER /var/www/example.com/html
  14. Активируйте конфиг-файл через создание символической ссылки: sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
  15. Отключите конфиг сайта по умолчанию командой sudo rm /etc/nginx/sites-enabled/default
  16. Проверьте синтаксис конфигурации командой sudo nginx -t
  17. Перезагрузите Nginx командой sudo systemctl reload nginx
  18. Повторите шаги 6-17 для каждого дополнительного домена, заменив названия файлов и директорий
  19. Создайте тестовый файл index.html в директории сайта для проверки
  20. Откройте браузер и перейдите на адрес вашего домена для проверки работы
  21. Настройте автозапуск Nginx при загрузке системы командой sudo systemctl enable nginx
  22. Для HTTPS создайте SSL-сертификат через Let's Encrypt командой sudo apt install certbot python3-certbot-nginx
  23. Выполните команду sudo certbot --nginx -d example.com -d www.example.com для автоматической настройки SSL
  24. Проверьте автоматическое обновление сертификатов командой 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.

Похожие материалы

Изменение стандартного порта SSH 22 в Linux сервере для защиты от брутфорса
DHCP сервер на базе Windows Server 2022
Роль контроллера домена Active Directory в Windows Server