Как установить 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 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 готов к обслуживанию контента вашего сайта.
Возможно, вас заинтересует
Причины возникновения ошибки 502. Как ее исправить?
Ошибки 5хх означают проблемы на стороне сервера. Если говорить конкретно об ошибке 502, то...
Обновлено: 30.10.2024
|Причины возникновения ошибки 403. Как исправить?
Для большинства пользователей интернета не слишком принципиально, почему они не могут попасть на сайт....
Обновлено: 23.10.2024
|Причины возникновения ошибки 508. Как исправить?
Ошибка 508: Resource Limit Is Reached обычно означает, что ваша учетная запись превысила назначенные...
Обновлено: 15.10.2024
|Как вставить картинку в HTML и оптимизировать ее для лучшего ранжирования в Google
Согласитесь, визуальные эффекты играют важную роль в создании привлекательного и функционального интерфейса. В этой...
Обновлено: 26.09.2024
|
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться