Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация

Как установить Nginx на Ubuntu: пошаговая инструкция

35740
8 минут чтения
Средний рейтинг статьи: 3.6

Nginx — это один из самых востребованных веб-серверов с открытым исходным кодом. Зачастую он используется как веб-сервер, обратный или почтовый прокси-сервер.

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

Миграция в то самое облако

Перенесем вашу инфраструктуру в облако — быстро,
безопасно и с гарантией результата.

Предоставим грант до 1 000 000 ₽ на облачную
инфраструктуру и возьмем на себя весь процесс.

Установка Nginx

Для установки сервера Nginx понадобится локальная машина либо облачный сервер с установленной операционной системой Ubuntu. Программа доступна в официальных репозиториях Ubuntu по умолчанию. Установить её можно непосредственно из них, используя систему управления пакетами apt

  1. Для начала нужно обновить списки пакетов из репозиториев:
    
  1. После окончания процесса обновления пакетов можно установить Nginx на машину:
    
  1. Дождемся окончания установки, а после добавим программу в автозагрузку:
    
  1. Теперь нужно проверить, что веб-сервер успешно установлен и работает, а также добавлен в автозагрузку. Проверим статус работы веб-сервера:
    

Строка «Active: active (running)...» указывает на успешную работу сервера. Есть и другой способ проверить его работу. Нужно вставить IP-адрес сервера в адресную строку браузера. Если результат будет таким же, как на картинке ниже, то веб-сервер работает успешно.

Image3

  1. Теперь проверим его наличие в автозагрузке:
    

Если в ответ на выполненную команду получаем «enabled», значит веб-сервер добавлен в автозагрузки.

Для работы с установленным веб-сервером пригодятся базовые команды управления. Они приведены в таблице ниже. 

Функция

Команда

Запуск

sudo systemctl start nginx

Отключение

sudo systemctl stop nginx

Перезапуск

sudo systemctl restart nginx

Перезагрузка

sudo systemctl reload nginx

Проверка состояния службы

sudo systemctl status nginx

Тестирование конфигурации

sudo nginx -t

Настройка брандмауэра

Установка и настройка брандмауэра позволит закрыть все порты, кроме необходимых нам — 22 (SSH), 80 (HTTP), 443 (HTTPS). Первый протокол необходим для подключения к удаленному серверу. Второй и третий необходим для связи между клиентом и сайтом. Главное их отличие в том, что HTTPS — это зашифрованный HTTP. Шифрование данных происходит благодаря SSL-сертификату.

Установим утилиту UFW:

    

После успешной установки добавим веб-сервер в список доступных приложений брандмауэра:

    

Заполним файл следующим образом:

    

Проверим список доступных приложений:

    

Если среди них есть веб-сервер, значит всё сделано верно. Теперь нужно запустить брандмауэр и разрешить передачу трафика по вышеуказанным портам:

    

Чтобы проверить изменения, вводим команду:

    

Если всё сделано правильно, то в статусе будут перечислены все порты, которые нам необходимы.

Настройка Nginx

Администрирование веб-сервера представляет из себя изменение и поддержку конфигурационных файлов. Среди них 1 файл конфигурации и 2 каталога. Это nginx.conf, sites-available и sites-enabled соответственно. Все они лежат в директории /etc/nginx.

Файл nginx.conf — это главный конфигурационный файл. Каталог sites-available содержит файлы конфигураций виртуальных хостов. Каждый отдельный файл хранит информацию об определенном сайте. Это его имя, IP-адрес и другие данные. Каталог sites-enabled, в свою очередь, состоит только из конфигураций активных сайтов. Только из директории sites-enabled читаются файлы конфигурации для виртуальных хостов. Также в ней хранятся ссылки на sites-available. Такая структура позволяет временно отключать сайты без потери их конфигураций. 

Рассмотрим более детально главный файл конфигурации. Для этого откроем его для просмотра, используя редактор:

    

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

Image4

Каждый отдельный модуль — это директива, которая отвечает за определенные настройки веб-сервера. Они бывают простыми и блочными. Блочные директивы, помимо имени и параметров, хранят набор дополнительных инструкций, размещенных внутри фигурных скобок. 

Перечислим некоторую часть директив главного конфигурационного файла:

  • user — это пользователь, от которого осуществляются все рабочие процессы.
  • worker_processes — число рабочих процессов сервера. Оно должно быть не больше, чем количество ядер процессора. Параметр auto установит число автоматически.
  • pid — файл с номером главного процесса.
  • include — отвечает за подключение иных файлов конфигурации, удовлетворяющих заданной маске.
  • events — контекст, состоящий из директив, влияющих на работу сетевого соединения.
    • worker_connections — максимальное число одновременно работающих соединений одного рабочего процесса.
    • multi_accept — флаг, который может быть как включен (on), так и выключен (off). Если он включен, то рабочий процесс будет принимать все новые соединения, иначе только одно.
    • use — указывает метод обработки соединений. По умолчанию сервер выбирает наиболее подходящий и эффективный.
  • http — контекст, состоящий из директив, отвечающих за работу HTTP-сервера.
    • sendfile — включает (on) или отключает (off) метод отправки данных sendfile().
    • tcp_nopush, tcp_nodelay — параметры, влияющие на производительность. Первый заставляет сервер отправлять заголовки HTTP-ответов одним пакетом, а второй позволяет не буферизировать данные и отправлять их короткими очередями.
    • keepalive_timeout — параметр, отвечающий за время ожидания keep-alive соединения до его разрыва со стороны сервера.
    • keepalive_requests — максимальное число запросов по одному keep-alive соединению.
    • error_log — лог ошибок веб-сервера. Для сбора ошибок в определенной секции (http, server и т.д.) необходимо разместить директиву внутри нее.
    • gzip — сжатие контента. 

Настройка виртуальных хостов

На сервере может быть расположено множество сайтов. Все запросы приходят на его IP-адрес, а после веб-сервер определяет, какой дать ответ, в зависимости от домена. Виртуальные хосты предназначены для того, чтобы сервер понимал, что и к какому домену относится. В качестве примера создадим сайт testsite.dev.

Создадим папку для сайта:

    

Установим текущего пользователя в качестве владельца и группы:

    

Установим права на директорию:

    

Владелец нужен для того, чтобы вы могли управлять файлами сайта без sudo. Права 755 позволяют владельцу выполнять любые действия, а веб-серверу — читать содержимое.

После добавим индексный файл:

    

Заполним его минимальными данными для отображения сайта:

    

После создадим конфигурационный файл сайта в папке sites-available:

    

Заполним его простейшей конфигурацией:

    

Последнее, что осталось сделать, — это создать ссылку в директории sites-enabled на конфигурацию сайта testsite.dev, чтобы добавить его из доступных во включенные:

    

После создания виртуального хоста проведем тестирование конфигурации:

    

Отключим сайт по умолчанию, удалив запись о дефолтном виртуальном хосте:

    

Стоит уточнить, что после того, как мы отключим сайт по умолчанию, Nginx будет использовать первый встреченный серверный блок в качестве резервного сайта (то есть по IP-адресу сервера будет открываться самый первый сайт из конфигурации Nginx).

Перезагружаем веб-сервер:

    

Проверим, что всё было сделано верно и сайт работает. Для этого можно вставить IP-адрес сервера или домен, если он зарегистрирован, в адресную строку браузера:

Image1

Другой вариант — воспользоваться командой curl:

Image2

Подготовили для вас выгодные тарифы на облачные серверы

Cloud MSK 15

477 ₽/мес

Процессор
1 x 3.3 ГГц
Память
1 ГБ
NVMe
15 ГБ
Канал
1 Гбит/с
Публичный IP
Cloud MSK 30

657 ₽/мес

Процессор
1 x 3.3 ГГц
Память
2 ГБ
NVMe
30 ГБ
Канал
1 Гбит/с
Публичный IP

Заключение

В данной статье мы разобрали процесс установки Nginx на Linux, а именно на дистрибутив Ubuntu. С помощью этой инструкции можно провести базовую настройку веб-сервера и развернуть на нем свой первый сайт. Кроме этого, сервер подготовлен к переходу на зашифрованный протокол данных. Для этого нужно получить SSL-сертификат и настроить переадресацию с HTTP-протокола на HTTPS. Для настройки защищенного соединения вам будет необходимо сертификат SSL — заказать его можно в панели управления в разделе «SSL-сертификаты». 

35740
8 минут чтения
Средний рейтинг статьи: 3.6

Читайте также

Хотите внести свой вклад?
Участвуйте в нашей контент-программе за
вознаграждение или запросите нужную вам инструкцию
img-server