Как установить Nginx на Ubuntu
Nginx – наиболее популярный веб-сервер, на котором есть возможность размещать объемные сайты с большим трафиком. В отличие от Apache, в Nginx рабочие процессы обслуживаются одновременно множеством соединений, мультиплексируя их вызовами операционной системы, что обеспечивает низкое потребление серверных ресурсов. Плюсом есть также то, что он может использоваться как обратный прокси-сервер. Давайте подробнее рассмотрим и поможем вам разобраться с тем, как установить Nginx на Ubuntu.
Шаг 1 — Настройка веб-сервера nginx после установки
Авторизуйтесь в систему под root-пользователем, чтобы начать. Пакет Nginx доступен в стандартном репозитории системы Ubuntu. Для начала обновим в индекс пакетов (apt) (в случае, если это первое взаимодействие с системой пакетирования apt в текущей сессии):
apt updateДалее перейдем к установке Nginx.
apt install nginxВ терминале отобразится список устанавливаемых пакетов. Нажмите Y и Enter для продолжения инсталляции, и Nginx будет установлен со всеми его зависимостями.
Шаг 2 — Настройка фаервола UFW
Перед тем как тестировать Nginx, нужно разрешить его трафик в брандмауэре ufw. Во время инсталляции Nginx регистрирует свой профиль в ufw, в связи с чем открытие трафика не доставляет трудностей. Откройте список профилей ufw:
ufw app listAvailable applications:Nginx FullNginx HTTPNginx HTTPSOpenSSHКак результат, получаем отображение трёх профилей Nginx:
- Nginx Full: открыть как незащищенное соединение (80-й порт) так и защищенное (443-й порт).
- Nginx HTTP: открыть исключительно незащищенное соединение (на 80 порт).
- Nginx HTTPS: открыть защищенное соединение (порт 443).
Поскольку на Nginx первоначально не настроена работа по защищенному соединению, для начала включаем трафик по 80 порту. Для того, чтобы включить, выполняем:
ufw allow 'Nginx HTTP'Проверка статуса профиля:
ufw statusПолучаем вывод, что трафик HTTP разрешен:
Status: activeTo Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)Шаг 3 — Тест веб-сервера
После того как установим Ubuntu 18, Nginx запустится автоматически. Для проверки того, что это действительно так, узнаем его статус в инициализации systemd:
systemctl status nginxПолучаем информацию о том, что Nginx активен.
Active: active (running) since Sat 2020-07-04 09:28:52 PDT; 2s agoВторой способ — с помощью посадочной страницы Nginx. Её проверяем в браузере по IP-адресу, который вы получали в письме с данными доступа к серверу, или по доменному имени.
Вводим IP из письма в браузере с целью удостовериться, что все работает:
http://server_domain_or_IP
Получаем типичную посадочную страницу Nginx:
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.
Шаг 4 — Управление процессами Nginx
Перед операциями остановки и перезапуска Nginx настоятельно рекомендуем проверять корректность синтаксиса его конфигурационных файлов следующей командой:
nginx -tЕсли после выполнения команды, вы получите следующий вывод:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulТо можно смело переходить к выполнению операций перезапуска Nginx`a.
После того, как мы запомнили это сакральное правило, выучим необходимые базовые команды по управлению веб-сервером. Для остановки Nginx, выполните:
systemctl stop nginxЧтобы запустить используем:
systemctl start nginxЧтобы перезагрузить:
systemctl restart nginxДля обновления настроек (в текущей сессии) введите команду:
systemctl reload nginxПо дефолту с запуском сервера происходит автоматическая загрузка Nginx. Чтобы отключить автоматический запуск, выполните:
systemctl disable nginxДля восстановления автозапуска сервиса, используйте команду:
systemctl enable nginxПроверить включен или выключен автоматический запуск:
systemctl is-enabled nginxШаг 5 — Настройка виртуальных хостов
На веб-сервере Nginx есть возможность использования виртуальных хостов (или по-другому блоки server) для разделения настроек и создания нужного количества доменов на одном сервере. Nginx по дефолту выделяет единственный активный виртуальный хост для обслуживания каталога /var/www/html. В случае, если необходимо размещать больше одного сайта, необходимо добавить новые виртуальные хосты. Добавим отдельную корневую директорию для нашего нового домена. Создайте каталог ваш_домен, воспользовавшись флагом -p для добавления родительских каталогов:
mkdir -p /var/www/ваш_домен/htmlЗададим владельца на корневую директорию домена:
chown -R root: /var/www/ваш_домен/htmlЕсли вы создаете отдельного пользователя для вашего сайта, то вместо root-а укажите нужного пользователя. Если не вносились изменения в umask, то права будут заданы корректные, чтобы проверить:
cd /var/www/ваш_домен/html
find ./ -type f -exec chmod 644 {} \; -print && find ./ -type d -exec chmod 755 {} \; -printЭто установит цифровые права 644 на файлы и 755 на директории в /var/www/ваш_домен/html.
После проверки создаем шаблон страницы index.html в редакторе vim:
vim /var/www/ваш_домен/html/index.htmlВнесите в файл:
<html>
<head>
<title> Добро пожаловать на ваш_домен!</title>
</head>
<body>
<h1>Success! VirtualHost для ваш_домен работает </h1>
</body>
</html>Сохраняем изменения и выходим.
Шаг 6 — Настройка серверных блоков
Для обслуживания контента Nginx`ом, создаем файл конфигурации виртуального хоста с верными директивами. Создадим новый файл:
/etc/nginx/sites-available/ваш_доменvim /etc/nginx/sites-available/ваш_доменВнесите в файл конфигурации указанные строки. Они соответствуют стандартным настройкам VirtualHost’а, но имеют верный домен и каталог:
server {
listen 80;
listen [::]:80;
root /var/www/ваш_домен/html;
index index.html index.htm index.nginx-debian.html;
server_name ваш_домен www.ваш_домен;
location / { try_files $uri $uri/ =404;
}
}Обратите внимание, что root содержит путь нового каталога, а server_name – новый домен, ваш_домен. Сохраняем внесенные изменения и выходим из редактора. Активируйте файл, указав символьную ссылку в каталоге sites-enabled:
ln -s /etc/nginx/sites-available/ваш_домен /etc/nginx/sites-enabled/На данном этапе вы имеете два виртуальных хоста, которые обслуживают запросы клиентов на базе директив listen и server_name:
- ваш_домен будет обслуживать запросы для www.ваш_домен и ваш_домен.
- default будет отвечать на запросы по порту 80, если они не соответствуют остальным виртуальным хостам.
Во избежание недостатка памяти, из-за добавления дополнительных имен, редактируем одно значение в файле /etc/nginx/nginx.conf Открываем файл:
vim /etc/nginx/nginx.confРаскомментируем строку server_names_hash_bucket_size, убрав #:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...Проверяем корректность файла конфигурации Nginx:
nginx-tСохраняем коррективы и выходим. Изменения вступят в силу, после перезагрузки Nginx:
systemctl restart nginxКак результат ваш сайт станет обслуживаться Nginx`ом. Проверить правильность настройки можно по ссылке http://ваш_домен.
Шаг 7 — Базовые каталоги и файлы Nginx
Контент
/var/www/htmlВмещает контент сайта. Стандартно в ней сохраняется посадочная страница. В конфигурационном файле Nginx вы можете вносить изменения по каталогу.
Настройки сервера
/etc/nginxКаталог настроек nginx (тут находятся все конфигурационные файлы).
/etc/nginx/nginx.confОсновной конфигурационный файл Nginx, содержит глобальные настройки веб-сервера.
/etc/nginx/sites-availableВключает конфигурационные файлы по каждому сайту отдельно. Чтобы Nginx обрабатывал эти блоки, нужно разместить ссылки на них в в каталоге sites-enabled. Обычно употребляется для настройки виртуальных хостов.
/etc/nginx/sites-enabled/Каталог, хранящий конфигурационные файлы сайтов. Для активации файла, нужно создать символьную ссылку на файл, размещенный в каталоге sites-available.
/etc/nginx/snippetsСодержит фрагменты настроек (потенциально повторяемые сегменты конфигурации)
Логи
/var/log/nginx/access.logЛог сохраняет запросы, которые поступают к веб-сервером Nginx (возможно задать другое поведение).
/var/log/nginx/error.logОтображает уведомления об ошибках Nginx.
Заключение
В этом гайде мы разобрали основные советы и рекомендации по настройке web-сервера Nginx после установки. Nginx готов к обслуживанию контента вашего сайта.
Возможно, вас заинтересует
Как установить WP-CLI. Шпаргалка с основными командами
WP-CLI (WP Command Line Interface) – утилита для работы с сайтами на WordPress, которая...
| Обновлено: 10.10.2025
Настройка собственных NS для тарифов Реселлинг Хостинга
На тарифах Реселлинг Хостинга в HostPro вы можете размещать клиентские сайты под собственным брендом....
| Обновлено: 17.09.2025
Как просмотреть логи сервера на виртуальном хостинге
У вас бывало, что сайт внезапно перестает работать без каких-либо очевидных причин? Вы уже...
| Обновлено: 22.07.2025
Как включить Maintenance Mode на сайте WordPress?
Maintenance Mode – это режим технического обслуживания сайта. Когда он активен, при попытке зайти...
| Обновлено: 06.05.2025
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться