Дарим фонарики за Хостинг и VPS до 31.10.2024

Забрать подарок

Как установить 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

Наш телеграм

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

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

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

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

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

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

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

Ошибка 404: что это и как устранить

Ошибка 404: что это и как устранить

«Ошибка 404», «страница не найдена», «запрашиваемая страница не существует», «404 Not Found», «Page Not...

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

Как установить Moodle на сервер

Как установить Moodle на сервер

Moodle – это бесплатная и открытая платформа для онлайн-обучения, используемая для создания и проведения...

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

Установка и настройка ownCloud через панель управления Control Web Panel

Установка и настройка ownCloud через панель управления Control Web Panel

ownCloud – это бесплатная платформа с открытым кодом, которая позволяет создавать собственное облачное хранилище....

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