Здравствуйте читатели и гости моего блога. В данной статье я хочу рассмотреть установку веб-сервера Nginx самой последней версии, на примере операционной системы Ubun­tu Serv­er 16.04. В качестве основы будущего сервера эта операционная система была выбрана не случайно, это конечно может прозвучать смешно, но выбор системы основывался на определенной версии встроенных библиотек OpenSSL.

Дело в том, что изначально было задумано постепенно перевести сайт на HTTPS шифрование, дополнительно прикрутив поддержку нового протокола HTTP/2, а для этого необходимо наличие библиотек OpenSSL не ниже 1.0.2 версии. На данный момент нужная версия библиотек OpenSSL присутствует лишь в Ubun­tu Serv­er 16.04, которая поставляется с ними "из коробки".

openssl ubuntuКонечно версию библиотек можно и обновить, можно собрать Nginx с нужными библиотеками, но зачем совершать лишние движения, тем более что все делается с нуля? Поэтому выбор был очевиден, но что-то я отвлекся, продолжаем ближе к теме.

В системных репозиториях любой ОС всегда присутствует устаревшая версия сервера Nginx. На момент написания статьи в системных репозиториях Ubun­tu Serv­er 16.04 была доступна 1.10.0 версия, вышедшая 26 апреля 2016 года, в то время как на оф. сайте Nginx была доступна версия 1.11.10. Временной промежуток между выходом версий составляет около года.

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

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

Для сборки софта из исходников должны присутствовать необходимые пакеты.

Все дальнейшие действия будут происходить внутри определенной директории, по умолчанию для подобных целей я привык использовать каталог /usr/local/src.

Необходимо узнать последнюю версию сервера. Сделать это можно на оф. сайте Nginx, версии основной (main­line) ветки публикуются на главной странице.

После того как определились с версией сервера, скачиваем архив с исходниками.

Распаковываем скачанный архив, после чего сразу переходим в каталог с исходниками.

Теперь необходимо задать конфигурацию сервера, добавить нужные и убрать ненужные модули. Со списком модулей и их описанием можно ознакомиться в документации Nginx, в справочнике по модулям. Привожу свой список опций с которыми будет собран сервер.

Все только самое необходимое, если что-то понадобится впоследствии, то лучше собрать сервер повторно и добавить нужные модули или опции.

Вся вышеописанная конфигурация задается одной командой.

Если при конфигурации сервера у вас возникли какие либо ошибки, то это означает, что вы что-то забыли установить из списка необходимых пакетов в начале статьи. Найдите свою ошибку в списке и установите нужные пакеты, после чего выполните команду "./configure…" заново.

Если по завершению не было никаких ошибок, а в конце создан "Make­file" и указана суммарная конфигурация, то можно переходить непосредственно к установке Nginx.

Выполняем компиляцию и последующую установку сервера.

После того как установка будет завершена, можно посмотреть версию установленного сервера, выполнив команду nginx -V.

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

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

Создадим пользователя nginx, зададим командную оболочку /usr/sbin/nologin, запрещающую удаленный доступ и обозначающую пользователя как системного.

Создаем каталоги необходимые для работы сервера.
Создадим символическую ссылку.
Создаем службу nginx.service.
Добавляем службу nginx.service в автозагрузку и запускаем.
Проверяем как работает командой sta­tus.

Если сейчас обратиться к серверу по его IP-адресу, должна отобразиться страница "Wel­come to nginx!". Если страница отображается, значит все в порядке, сервер запущен и работает.

nginx ubuntuВ следующей статье можно узнать как настраивать Nginx.