Шесть способов узнать версию Nginx

Шесть способов узнать версию Nginx

Рассказываем, как работает веб-сервер  Nginx, как узнать версию Nginx, Nginx-version через команды в терминале, версию web-server в файле конфигурации, а также как скрыть версию Nginx.

Nginx (произносится как Engine X или «Энжайникс») — это ПО с открытым исходным кодом, позволяющее создавать веб-серверы (на них размещают веб-сайты), обратные и почтовые прокси-серверы. На сервер приходит запрос, он производит его обработку, формирует ответ и отсылает его клиенту. На сегодняшний день это один из числа самых распространённых веб-серверов.

В нашей статье мы расскажем про основные особенности этого веб-сервера и о том, как узнать установленную на сервере версию Nginx.

Как устроен Nginx

В общих чертах рассмотрим, как работают веб-серверы. Веб-сервер представляет собой ПО, предназначенное для обработки входящих запросов и отправления исходящих с использованием различных протоколов передачи данных по сети. Например, когда мы переходим по ссылке, браузер отправляет веб-серверу запрос по протоколу HTTPS, затем веб-сервер выполняет необходимые инструкции в соответствии с конфигурацией и отправляет ответ веб-клиенту, опять же, по HTTPS. Ответ может содержать самые разные данные для отображения, страницы сайта (HTML-данные, CSS-код, медиафайлы, JS-файлы), а также данные для перенаправления и т. д.

«Энжайникс» в целом делает то же, что и обычный сервер. Но у него есть и особенные функции, которые сделали его настолько популярным: он работает асинхронно и может одновременно обрабатывать множество запросов. Обычно сервер блокирует поток входящих запросов до полного выполнения инструкции и отправки ответа. «Энжайникс» же обрабатывает и начинает выполнять новые запросы ещё до полного завершения предыдущих задач, поэтому блокировки или серьёзной задержки получения и отправки данных не происходит. Благодаря этому веб-сервер может эффективно и с минимумом задержек поддерживать большое количество соединений, например, при передаче видео- или аудиофайлов.

Плюсы «Энжайникс»:

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

Также «Энжайникс» можно установить в следующих случаях.

  • Для прокси-сервера. К примеру, когда запросов слишком много, а сам Nginx не в состоянии обработать их все, он берёт на себя роль прокси. Принимая входящий запрос, он передаёт его обрабатывающему серверу, а получив ответное сообщение, перенаправляет его клиенту.
  • Для SSL/TLS-терминации. Благодаря поддержке SSL и TLS Nginx успешно используют для шифрования и дешифрования.

Как определить версию Nginx

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

Узнаём версию через командную строку

Способ первый: nginx -v

Откроем терминал и пропишем команду nginx с флагом -v:

nginx -v
Команда nginx с флагом -v

В выводе команды мы увидим искомую информацию. На скриншоте это 1.18.0. А с актуальной на сегодня версией — 1.27.0 — вывод будет выглядеть так:

nginx version: nginх/1.27.0 

Если вы вводите запрос как обычный пользователь и на выводе получаете ошибку, то это говорит о том, что команда доступна только рут-пользователю. Отправьте тот же запрос с «sudo»:

sudo nginх -v

Способ второй: команда с флагом «-V»

Эта команда похожа на предыдущую с одной лишь разницей: флаг -V набирается в верхнем, а не в нижнем регистре. На выводе мы получим более подробную информацию:

nginx -V

Запрос возвращает информацию о версии, компиляторе и подключённых модулях.

Среди прочего в выводе будет строка:

nginx version: nginx/*.**.*

Вместо символов «*» будет отображаться установленная версия.

Чтобы узнать, скомпилировано ли ПО с определённым модулем, введите запрос:

nginx -V 2>&1 | grep http_flv_module

В данном случае мы узнаём, есть ли компиляция с модулем http_flv.

Вывод команды:

Вывод команды для определения версии Nginx

Название искомого модуля будет подсвечено красным.

Способ третий: команда systemctl status

Запустим терминал, пропишем в командной строке и нажимаем «Ввод»:

systemctl status nginx.service

Команда будет выполнена и её вывод будет содержать информацию о статусе службы Nginx, запущенной в данный момент на сервере, в том числе версию.

Способ четвёртый: через передаваемые заголовки

«Энжайникс» передает свою версию в заголовке Server. Проверить, какие заголовки предаются можно командой curl:

curl -I test.[name]

Например:

curl -I test.adminvps.ru

Версия будет в выводе в строке «Server: nginx/*.**.*»

Способ пятый: используем конфигурационные файлы

Если консоль недоступна, но нужно узнать версию запущенного веб-сервера прямо сейчас, то можно посмотреть её в конфигурационном файле.

Порядок действий такой:

  1. Находим файл с конфигами. Чаще всего он лежит в директории /etc/nginx/ и называется nginx.conf.
  2. Открываем его в текстовом редакторе.
  3. Затем в содержимом файла находим строку, начинающуюся с nginx/. В этой строке и будет указана версия запущенного веб-сервера.

Способ шестой: некорректный запрос файла

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

Как узнать, что «Энжайникс» установлен и работает

Если ни одним из способов не удалось узнать версию веб-сервера, стоит проверить, установлен ли и запущен ли он:

$ ps -auxww | grep nginx 

С помощью ps мы просмотрим запущенные процессы, а grep будет искать в выводе слово nginx. Если вы увидите нужные процессы среди запущенных, значит сервер установлен и работает корректно.

Как спрятать данные установленного Nginx

Чтобы сервер не передавал версию в заголовках и при ошибке, изменим его параметры в файле конфигурации.

В примере файл откроет редактор vi:

sudo vi /etc/nginx/nginx.conf

Найдём блок http, строку server_tokens и поменяем установленные настройки — вместо on укажем off:

server_tokens off
Настройки сервера

После чего перезапускаем веб-сервер:

sudo systemctl restart nginx

Теперь вы знаете, как вычислить версию Nginx несколькими способами.

Читайте в блоге:

Что будем искать? Например,VPS-сервер

Мы в социальных сетях