Nginx Ubuntu: установка и настройка

Nginx Ubuntu - это веб-сервер с открытым исходным кодом, обладающий мощными функциями балансировки нагрузки, обратного прокси и кэширования. Первоначально он был разработан для устранения сбоев масштабирования и параллелизма на существующих серверах. Асинхронная архитектура на основе событий сделала его самым популярным и эффективным.

Две версии установки

Обычно выбирают две версии Nginx Ubuntu с открытым исходным кодом - основную и стабильную. Основная версия представляет небольшую часть полного пакета. Статус «Разработка и пробная версия» не означает, что основная уязвима, напротив, она довольно стабильна. Ее преимущества: всегда можно предварительно испробовать оптимальные функции и новейшие возможности. Недостаток - вероятность получения ошибок больше по сравнению со стабильной.

У последней (полная версия Nginx Ubuntu) ее функции и безопасность были проанализированы с помощью серии тестов и имеют очень высокие показатели. В результате пользователь получает стабильный и надежный веб-сервер, который подходит для применения в качестве сервера электронной коммерции.

Тип инсталляции Nginx

Новичкам нужно правильно применить параметры инсталляции, чтобы развернуть сервер.

Существует несколько вариантов установки Nginx Ubuntu:

  1. Из готового пакета Debian/Ubuntu.
  2. Из готового пакета репозитория Nginx.
  3. Из исходного кода.

Установка из готового пакета (Debian/Ubuntu) как с ядром, так и с модулем по умолчанию выполняется очень легко вместе с процессом обновления автоматически. Процесс осуществляется программой, состоящей из стабильной версии и нескольких опций модуля.

Установка Nginx Ubuntu из пакета репозитория также проста, как и из операционной системы по умолчанию. Можно выбрать: использовать стабильную версию или основную. Кроме того, можно более гибко подобрать динамический модуль, который планируется применять. Последний отличается от статического модуля, но некоторые из них можно преобразовать в динамические. Для Nginx процесс обновления ядра довольно сложный, поэтому должен выполняться вручную.

Предварительно собранный пакет

Если нужна большая гибкость, то установка Nginx из исходных кодов – это правильный выбор. Все модули используют по мере необходимости, можно изменить основной код. Выполнение Nginx install Ubuntu из готового пакета:

Предварительно собранный пакет

Для того чтобы установить эту схему по умолчанию, проверяют Ubuntu или Debian Web, чтобы увидеть, какие модули встроены в Full. Далее инсталлируют ПО из предварительно собранного пакета Repository.

ПО из предварительно собранного пакета Repository

После этого добавляют следующий ключ подписи, чтобы гарантировать, что репозиторий и пакеты перечислены в связке ключей менеджера (apt).

Алгоритм установки:

  1. Далее добавляют репозиторий Nginx по умолчанию из пакета Ubuntu или Debian.
  2. Для этого определяют репозиторий в файле пакета sources.list.
  3. Сначала открывают файл sources.list в консоли nano в качестве редактора файлов.
  4. После открытия файла добавляют репозиторий в нижнюю строку с общим шаблоном.
  5. Сохраняют изменения, нажав Ctrl + x → Y → Enter.
  6. После этого можно инсталлировать Nginx обычным способом.

Стабильная версия Nginx Ubuntu server будет установлена в систему.

Где:

  • {ОС Linux} - Ubuntu или Debian;
  • {codename} - название используемой ОС.

Кодовое имя можно увидеть в следующей таблице.

Кодовое имя

Код установки.

Код установки

Настройка NGINX Ubuntu 18.04

В настоящее время лучший способ установить модель 18.04, это использовать версию, включенную в репозитории Ubuntu.

Конфигурационные файлы NGINX хранятся в /etc/nginx/conf.d/. Как правило, потребуется самостоятельный файл в этом каталоге для каждого домена или субдомена.

Алгоритм установки NGINX в Ubuntu:

  1. Копируют файл по умолчанию.
  2. Заменяют example.com доменным именем сайта или публичным IP.
  3. Отключают файл по умолчанию, добавив .disabled к его имени.
  4. Открывают файл в редакторе.
  5. Заменяют в директиве доменное имя или IP сайта.
  6. Для готового контента, например, установки WordPress или статических файлов, заменяют путь в root-директиве на путь к контенту сайта.
Алгоритм установки NGINX в Ubuntu

Тестирование NGINX:

  1. Проверяют конфигурацию на ошибки.
  2. Перезагружают версию.
  3. Переходят к IP Linode в браузере, после чего появится страница NGINX.

Добавление нового сайта на сервер

ПО стека LEMP демонстрирует группу, которую можно использовать для обработки динамических страниц и приложений. Внутренние данные хранятся в MySQL, а динамические процессы обрабатываются PHP Ubuntu Nginx.

Требования:

  1. Клиенты SSH, например, Bitvise или Putty, с инструкциями о том, как их использовать.
  2. Базовые знания общих команд Unix для SSH к серверу.
  3. Сервер или VPS с минимальной оперативной памятью 256 МБ (OpenVZ). Рекомендуется использовать 512 МБ, если используется KVM или Xen.
  4. Ubuntu 16.04 между 32 или 64 битами.

Предпосылка:

  1. Предоставляет сервер Ubuntu.
  2. Устанавливает полный LAMP (Ubuntu Nginx Apache, MySQL, Perl / PHP / Python) на сервер Ubuntu.

Создание веб-каталога

Веб-каталоги - это списки или папки на сервере, где хранятся или размещаются все файлы. Вход в него выполняют с помощью Terminal, Putty и Bitvise.

Далее необходим каталог. Ниже эта команда создает две директории для двух сайтов, например, если нужно добавить только один сайт, просто указывают один раз, вместо domain1.tld и domain2.tld прописывают нужный домен. Далее устанавливают владельца каталога на www-data и рекурсивно изменяют права доступа к каталогу. Размещают следующий, после этого создают тестовый файл index.html, сохраняют и выходят из редактора, нажав Control+O, затем Cotrol+X.

Создание веб-каталога

Создание блочного сервиса

Файл блока сервера Nginx хранится внутри, затем помещают эту конфигурацию туда и заменяют «xxxx» своим собственным IPv4 или IPv6-адресом. Сохраняют и выходят из редактора, нажав Control+O затем Control+X. После этого выполняют аналогичные действия для другого сайта.

Создание блочного сервиса

Далее можно активировать каждый блок сервера. В целях безопасности редактируют nginx.conf и активируют опцию: «Размер хеш-памяти имен», удаляют символ комментария (#). Нажимают Control+O для сохранения и Control+X для выхода из редактора. Теперь тестируют конфигурацию и подтверждают Ok.

Наконец, выполняют reload или restart, чтобы сервис перезагрузился. Затем настраивают данные DNS-домена или редактируют файл локального хоста на компьютере, чтобы протестировать пакет. Запускают веб-браузер и пробуют получить доступ к VPS через доменное имя.

Размещение HTTP-Сервера

Размещение HTTP-Сервера

HTTP-сервер Nginx (Engine-X) - самый популярных из аналогов, используемых в Интернете. Он легкий, стабильный, готовый к работе, который может использоваться любым человеком для создания мощных и динамичных веб-сайтов. Он также может служить прокси-сервером, что делает его отличным выбором для безопасности загруженных и популярных веб-сайтов.

Установка HTTP-сервера Nginx:

  1. Устанавливают сервер. Пакеты можно получить в программном хранилище Ubuntu, все, что нужно сделать, это запустить команду apt.
  2. После того как сервер будет установлен, настраивают брандмауэр для разрешения трафика HTTP. По умолчанию брандмауэр Ubuntu не включен. В некоторых случаях он включается автоматически по соображениям безопасности.
  3. Если брандмауэр включен, приведенные однострочные команды должны разрешать HTTP-трафик, как на порт 80, так и на порт 443. Если проверить состояние брандмауэра, можно увидеть, что HTTP Full разрешен откуда угодно, включая трафик v6.
  4. Открывают доступ к странице веб-сайта Nginx по умолчанию или переходят по IP сервера или хоста.
  5. При установке HTTP-сервера Nginx будут созданы дополнительные папки. Они содержат файлы конфигурации, настройки и другие вышеуказанные каталоги, являются наиболее используемыми на сервере.

Использование обратного прокси

Использование обратного прокси

Обратный прокси - это сервер, который находится между внутренними приложениями и внешними клиентами, перенаправляя клиентские запросы. Хотя многие распространенные приложения, такие как Node.js, могут работать как серверы самостоятельно, в NGINX есть ряд расширенных функций балансировки нагрузки, безопасности и ускорения, этих функций нет в большинстве специализированных программах. Использование NGINX в качестве обратного прокси-сервера позволяет добавлять эти функции в любое приложение.

Для этого используется простой Node.js, чтобы продемонстрировать, как настроить NGINX в качестве обратного прокси-сервера.

Установка прокси:

  1. Эти шаги устанавливают Mainline в Ubuntu из официального репозитория NGINX Inc. Для других дистрибутивов нужно ознакомиться с руководством администратора, чтобы получить информацию о настройке для производственных сред.
  2. Открывают /etc/apt/sources.list текстовый редактор и добавляют следующую строку внизу.
  3. Заменяют codename в этом примере на кодовое имя установленной версии.Например, для Ubuntu Nginx php fpm с именем Bionic Beaver прописывают bionic.
  4. Импортируют ключ подписи пакета репозитория и добавляют его в apt.
  5. Убеждаются, что сервер запущен и будет включен автоматически при перезагрузке.

Пример приложения

Пример приложения

Используют curl для загрузки сценария установки, предоставленного NodeSource. Заменяют версию Node в curl-команде той, которую нужно разместить.

Запускают скрипт:

  1. Сценарий apt-get update запустится автоматически, поэтому можно сразу установить Node.js.
  2. Диспетчер пакетов узлов (NPM) будет распакован вместе с Node.js.
  3. Создают каталог приложения.
  4. Инициализируют приложение Node.js в каталоге.
  5. Принимают все значения по умолчанию при появлении запроса.
  6. Устанавливают Express.js: npm install --save express.
  7. Используют текстовый редактор для создания и добавления следующего контента: app.js.
  8. Запускают приложение.
  9. В отдельном окне терминала используют curl, чтобы убедиться, что ПО работает.

Настройка Node.js

На этом этапе можно настроить Node.js так, чтобы он служил примером приложения на общедоступном IP-адресе Linode, что позволило бы выставить его в Интернете. Вместо этого раздел выполняет установку php Ubuntu Nginx для пересылки всех запросов с общедоступного IP на сервер с прослушиванием localhost.

Базовая конфигурация для NGINX с обратным прокси: создают файл, заменяют в этом примере example.com, домен ПО или публичный IP-адрес.

Запускают приложение

Директива proxy_pass - это конфигурация обратного прокси. Она указывает, что все запросы, которые соответствуют блоку местоположения, в данном случае корневому пути, должны быть перенаправлены на порт 3000 на localhost с запущенным Node.js.

Процедура настройки:

  1. Отключают или удаляют страницу по умолчанию Welcome to NGINX:sudo mv /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.disabled.
  2. Проверяют конфигурацию: sudo nginx -t.
  3. Если об ошибках не сообщается, перезагружают новую:sudo nginx -s reload.
  4. В браузере переходят к общедоступному IP-адресу Linode, появится сообщение Hello World!

Дополнительные параметры: постоянная ссылка

Дополнительные параметры: постоянная ссылка

Для простого приложения proxy_pass достаточно директивы. Однако для более сложных могут потребоваться дополнительные параметры. Например, Node.js часто используется для тех случаев, которые требуют много взаимодействий в реальном времени. Чтобы приспособиться, отключают функцию буферизации Nginx Ubuntu ssl. Можно изменить или добавить заголовки, которые пересылаются вместе с прокси-запросами proxy_set_header. Эта конфигурация использует встроенную $remote_addr-переменную для отправки IP-адреса исходного клиента на прокси-хост.

Одним из преимуществ обратного прокси-сервера является простота настройки HTTPS с сертификатом TLS. Certbot - это инструмент, позволяющий быстро получить бесплатные сертификаты от Let's Encrypt. Можно использоваться Certbot в Ubuntu 16.04, официальный сайт содержит подробные инструкции по установке и применению основных дистрибутивов. После получения сертификатов через Certbot, он автоматически обновит файлы для использования нового сертификата.

Certbot запросит информацию о сайте. Ответы будут сохранены как часть сертификата.

Настройка Node.js

Certbot также спросит, нужно ли автоматически перенаправить HTTP-трафик на HTTPS. Рекомендуется выбрать эту опцию. После завершения работы инструмента Certbot сохранит сгенерированные ключи и выданные сертификаты в /etc/letsencrypt/live/$domain каталоге, где $domain имя домена, введенное на этапе создания сертификата Certbot.

Certbot рекомендует указывать конфигурацию веб-сервера в каталоге сертификатов по умолчанию или создавать символические ссылки. Ключи и сертификаты не следует перемещать в другой каталог. Наконец, Certbot обновит сервер, чтобы он использовал новый сертификат, а также перенаправит HTTP-трафик на HTTPS, если выбрана эта опция.

Если на Linode настроен брандмауэр, можно добавить его правило, чтобы разрешить входящие и исходящие подключения к службе HTTPS. В Ubuntu UFW - это широко используемый и простой инструмент для управления правилами брандмауэра.

HTTP-сервера на стороне сервера

Одним из требований для реализации приложения или веб-сайта является наличие веб- или HTTP-сервера на стороне сервера, который выполняет обработку. Последний устанавливает двунаправленные или однонаправленные соединения с клиентом и генерирует ответ на сделанные запросы. Поэтому - это неотъемлемая часть веб-инфраструктуры.

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

Статья закончилась. Вопросы остались?
Подписаться
Я хочу получать
Правила публикации
Следят за новыми комментариями — 8
Редактирование комментария возможно в течении пяти минут после его создания, либо до момента появления ответа на данный комментарий.