news
Расширенные конфигурации в Амстердаме
KI
18 января 2023
Обновлено 19 апреля 2023

Установка и настройка Nginx

Debian Linux Nginx Ubuntu

Введение

Nginx – один из популярных web-серверов для размещения крупных сайтов с высоким трафиком пользователей в Интернете. Также, считается одним из удобных утилит, как для web-сервера или для конфигурирования обратного прокси.

В этой инструкции рассмотрим такие возможности, как:

  • Установку Nginx на ранее развернутый сервер;
  • Настройку брандмауэра;
  • Настройку серверного блока для размещения более одного домена на одном сервере.

Подготовка к работе

Прежде чем приступить к работе, необходимо развернуть сервер на базе Debian/Ubuntu/CentOS. Минимально настроить систему с новым пользователем и правами на выполнение команд с правами sudo, согласно инструкции.
После удостоверения, что настройка успешно выполнена, приступим к установке Nginx на нашем сервере.

Установка Nginx

Nginx является стандартным пакетом в репозиториях большинства операционных систем. Если сервер был недавно настроен, то обновим индексы пакетов программного обеспечения и установим пакет Nginx:

apt update
apt install nginx -y

С ключом -y соглашаемся на автоматическую на установку пакета.

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

После установки пакета Nginx, необходимо настроить брандмауэр для получения доступа к Nginx извне.
Посмотрим доступные утилиты, которые добавляется в список правил брандмауэра:

ufw app list

В списке нужно найти следующие строки, которых мы включим в правила дальнейшем:

Nginx Full – отвечает за порты 80 (HTTP – обычный и трафик не шифруется) и 443 (HTTPS – шифрует трафик с помощью протоколов TLS/SSL)
Nginx HTTP – обычный и трафик не шифруется
Nginx HTTPS – шифрование трафика с помощью TLS/SSL
OpenSSH – удаленное подключение к серверу через порт 22

Для начала включим доступ к порту 80:

ufw allow 'Nginx HTTP'

Проверить статус добавления приложения в брандмауэр можно проверить с помощью:

ufw status

В результате правил можем увидеть строку с Nginx HTTP – Allow – Anywhere.

Проверка Web-сервера

После установки пакета система автоматически запускает утилиту, необходимо добавить в автозагрузку для запуска Nginx, чтобы при перезагрузке системы, наш web-сервер автоматически запускалась.
Статус утилиты можно проверить с помощью команды:

service nginx status

По результатам можем убедится об успешном запуске web-сервера. Затем необходимо проверить на своей основной системе доступность Nginx. Откроем браузере и в строке поиска введём адрес сервера. Чтобы узнать внешний адрес сервера выполним следующую команду:

curl 2ip.ru

В результате получим адрес которую вводить в адресной строке.
После перехода на страницу получим следующий результат.

1
Рисунок 1 – Страница приветствия Nginx

На данном этапе мы успешно установили и сконфигурировали Nginx. Также настроили доступ к Web-серверу из внешнего хоста.

Управление процессом Nginx

Управление процессом Nginx выполняется с помощью несколько команд начинающихся с systemctl, знак # означает комментарий и не обрабатывается командным интерпретатором:

start nginx # запуск службы
reload nginx # при случае изменения конфигурации и выполняет перезагрузку без разрыва соединения
restart nginx # останавливает и запускает службу
stop nginx # останавливает службу
disable nginx # отключает от автозагрузки системы
enable nginx # добавляет в автозагрузку системы

Мы рассмотрели команды для удобной работы процессом Nginx.

Конфигурирование серверного блока (Рекомендуется)

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

Рассмотрим настройку домена serverspace.tm, вам необходимо приобрести домен для рассмотрения тестовой работы Nginx.

В Nginx включен один серверный блок, который обрабатывает конфигурацию из директории /var/www/html. Данный вариант хорошо подходит для работы одного сайта, но и будет препятствовать работе web-сервера если размещать несколько сайтов в одном сервер. Лучшим выходом из этой ситуации разделить дополнительный web-сайт от основного каталога.
Создадим новую директорию с ключом “-p” в директории /var/www/:

mkdir -p /var/www/serverspace.tm/html

Чтобы избежать проблем с разрешениями, измените владельца корневого каталога документов домена и всех файлов в каталоге пользователю Nginx ( www-data ):

sudo chown -R www-data: /var/www/serverspace.tm

Затем в директории /var/www/serverspace.tm/html создадим файл с названием index.html, внесём изменения с помощью любого текстового редактора и вставьте в файл следующий кусок кода.

<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Добро пожаловать в ServerSpace.tm</title>
</head>
<body>
<h1>Успешно! Ваш домен ServerSpace.tm работает!</h1>
</body>
</html>

Сохраним файл и выполним выход.

Выполним выход с дальнейшим сохранением файла.
Чтобы данный файл обслуживался со стороны Nginx, следует создать конфигурационный файл для обработки нужной директории. Вместо того, чтобы изменить конфигурационный файл default, создадим для нашего домена новый конфигурационный файл в директории /etc/nginx/sites-available/:

vim /etc/nginx/sites-available/serverspace.tm

Добавим следующие конфигурации, чтобы контент из index.html обрабатывался:

server {
listen 80;
listen [::]:80;
 
root /var/www/serverspace.tm/html;
index index.html index.htm index.nginx-debian.html;
 
server_name serverspace.tm www.serverspace.tm;
 
location / {
try_files $uri $uri/ =404;
}
}

Далее создадим символическую ссылку файла в директории /etc/nginx/sites-enabled/ для обработки Nginx при запуске web-сервера.

ln -s /etc/nginx/sites-available/serverspace.tm /etc/nginx/sites-enabled

Символическая ссылка напоминает ярлык, в основной папке sites-available можно вносить изменения в конфигурационном файле и изменения коснутся файла из директории sites-enabled.
Во избежание проблемы с хэш-памятью, которая возникает из-за дополнительных имен серверов, раскомментировать строку server_names_hash_buckets_size 64 в файле /etc/nginx/nginx.conf:

vim /etc/nginx/nginx.conf
http {
...
server_names_hash_buckets_size 64;
...
}
...

Сохраним файл и выполним выход.
Проверим правильность конфигурации с помощью:

nginx -t

В случае результата без ошибки перезагружаем процесс Nginx и вводим в браузере:

http://serverspace.tm

Получим следующий результат.

2
Рисунок 2 – Результат конфигурации Nginx

Выводы

В данной инструкции мы рассмотрели:

  • Установку пакета Nginx;
  • Настройку брандмауэра с помощью утилиты ufw;
  • Тестирование нашего домена с web-сервером Nginx.
Оценка:
5 из 5
Аverage rating : 5
Оценок: 4
191028 Санкт-Петербург Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700 300
ООО «ИТГЛОБАЛКОМ ЛАБС»
700 300