Black Friday! Дарим до 3 месяцев вашего тарифа VPS!

Подробнее

Как установить Nginx на Ubuntu

post thumbnail

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 list

Available applications:

Nginx Full

Nginx HTTP

Nginx HTTPS

OpenSSH

Как результат, получаем отображение трёх профилей Nginx:

  • Nginx Full: открыть как незащищенное соединение (80-й порт) так и защищенное (443-й порт).
  • Nginx HTTP: открыть исключительно незащищенное соединение (на 80 порт).
  • Nginx HTTPS: открыть защищенное соединение (порт 443).

Поскольку на Nginx первоначально не настроена работа по защищенному соединению, для начала включаем трафик по 80 порту. Для того, чтобы включить, выполняем:

ufw allow 'Nginx HTTP'

Проверка статуса профиля:

ufw status

Получаем вывод, что трафик HTTP разрешен:

Status: active

To 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 готов к обслуживанию контента вашего сайта.

Telegram Hostpro

Наш телеграм

с важными анонсами, розыгрышами и мемами

Присоединиться

Возможно, вас заинтересует

Причины возникновения ошибки 502. Как ее исправить?

Причины возникновения ошибки 502. Как ее исправить?

Ошибки 5хх означают проблемы на стороне сервера. Если говорить конкретно об ошибке 502, то...

Ruslan Holovatiuk | Обновлено: 30.10.2024

Причины возникновения ошибки 403. Как исправить?

Причины возникновения ошибки 403. Как исправить?

Для большинства пользователей интернета не слишком принципиально, почему они не могут попасть на сайт....

Ruslan Holovatiuk | Обновлено: 23.10.2024

Причины возникновения ошибки 508. Как исправить?

Причины возникновения ошибки 508. Как исправить?

Ошибка 508: Resource Limit Is Reached обычно означает, что ваша учетная запись превысила назначенные...

Ruslan Holovatiuk | Обновлено: 15.10.2024

Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google 

Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google 

Согласитесь, визуальные эффекты играют важную роль в создании привлекательного и функционального интерфейса. В этой...

Hostpro Company | Обновлено: 26.09.2024