Если вы собираетесь развернуть собственный веб-сервер, вы наверняка задумывались, что такое Nginx. Ведь на нём работают более 30% всех сайтов. Его популярность объясняется возможностью бесплатного использования, открытым кодом.
Объясним простым языком, как использовать nginx для ваших целей.
Nginx – это веб сервер. Он хранит файлы сайта и направляет их по запросу на компьютер или мобильное устройство. То есть он нужен для быстрого отображения интернет-страничек.
Веб сервер nginx признан международным стандартом, он используется практически во всех компаниях, специализирующихся на веб-разработке. Его главная функция – обработка статичного контента на сайтах.
Когда человек открывает сайт, на сервер направляется специальный HTTP-запрос. Это набор данных, которые «объясняют», что хочет увидеть пользователь. Реакцией сервера становится HTTP-ответ, в котором содержится страница с необходимой информацией: изображениями, текстом, формами и другими элементами.
У Nginx есть важная особенность. Он не формирует общий поток под запрос, как другие веб сервисы, а разбивает его на несколько мелких однотипных структур. Называются они рабочие соединения, любое из них способно одновременно обрабатывать до 1024 запросов.
Для обработки рабочего соединения предусмотрен свой процесс. И только когда все они выполнены, они снова объединяются, направляя общий результат в главный процесс обработки данных.
Практическое применение у этого веб сервера довольно широкое, так как подключить nginx целесообразно в 3 случаях.
Nginx может самостоятельно принимать, обрабатывать и отдавать клиентам запросы. За эти действия отвечает специальный модуль внутри сервера.
Кроме того, он способен выполнять функции прокси-сервера. В крупных порталах, как правило, обращаются к системе микросервисов. Nginx при этом получает запрос от пользователя, перенаправляет его конкретному серверу, после обработки получает ответ, который перенаправляет клиенту. При таком подходе сервисы не перегружаются, поэтому оперативно обрабатывают запросы. Поэтому Nginx обеспечивает оперативное взаимодействие между клиентом и сайтом.
Nginx создавался как альтернатива известному Apache, который раньше использовался практически везде. И он обошёл свой «прототип» при работе со статичным контентом, так как работает быстрее, потребляя при этом значительно меньше серверных ресурсов. Однако, если на сайте преобладает динамический контент, Apache удобнее. Иногда оба сервера действуют вместе. Nginx обрабатывает статику, а динамические запросы отдаёт Apache.
Чтобы понять, установка Nginx или Apache подходит в конкретном случае, нужно проанализировать их сильные и слабые стороны.
Конфигурации формируется на базе директив, которые также применяются для присоединения модулей. Они бывают двух видов.
Простые включают в себя имя и параметры, разделяет их обычный пробел. Каждая строка заканчивается знаком «;» (точка с запятой).
Блочные выглядят приблизительно также. Только вместо точки с запятой следуют фигурные скобки, в которых прописаны дополнительные инструкции.
Рассмотрим примеры, как настроить nginx, используя наиболее распространённых элементов.
Иногда можно встретить переменные с символом $ в начале. Это встроенные переменные. Они представляют собой поля заголовка запроса клиента.
В директории /usr/share/nginx/html по умолчания находится Root-каталог. Веб сервер автоматически обслуживание все файлы из него.
В /etc/nginx/conf.d через конфигурационные файлы формируются новые блоки. Если у них окончание .conf, они загрузятся, если запускается веб сервер.
Главный файл расположен в etc/nginx/nginx.conf. Именно здесь можно изменить все настройки.
Nginx настройка зависит от используемой операционной системы. Как правило, веб-сервер ставят на Linux, для которого существуют стандартные инструкции и комплект дистрибутивов. Также возможно разместить Nginx на FreeBSD или собрать уникальный функционал.
Так как запустить nginx на CentOS проще всего, рассмотрим именно этот вариант.
Сначала нужно добавить yum-репозиторий Nginx на ОС. Это делается с помощью этой команды.
sudo rpm - Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.e17.ngx.noarch.rpm
Непосредственно для установки нужно ввести команду «sudo yum install nginx». Появится окно с подтверждением, на которое необходимо согласиться.
Следующая команда запускает сервер.
sudo systemctl start nginx.service
Важно проверить, получилось ли установить веб сервер. Для этого нужно ввести дополнительную команду.
ip addr show eth0 | grep inet | awk '{print $2$ } ' |sed s/ \ /. *$//
Если хотите, чтобы Nginx запускался одновременно с ОС, введите следующую команду.
sudo servicectl enable nginx. service
Возможно установить docker nginx, в ПО с открытым кодом. Это актуально, когда приложение работает на вашем компьютере, но не включается на других устройствах.
В случае администрирования сервера приложений или почтового сервера очень важно проверить, установлен ли Nginx. Это можно сделать с помощью одной простой команды.
Напишите в консоли SSH «nginx -v».
Если он стоит, система выдаст сообщение с номером. Выглядит оно приблизительно так.
nginx version: nginx/1.10.3
В другом случае смотрите предыдущий раздел с инструкцией по nginx «как включить».
Базовые процессы тоже выполняются с помощью команд.
Как пример, может потребоваться остановка веб сервера. Чтобы быстро завершить все рабочие процессы, нужно ввести следующее.
$ sudo systemctl stop nginx
$ sudo service stop nginx
Это сработает, даже если присутствуют открытые соединения.
Рассказываем, как перезапустить nginx, поскольку это требуется довольно часто. Можно выбрать один из двух вариантов.
$ sudo systemctl restart nginx
$ sudo service restart nginx
Перезагрузка выполняется похожими командами.
$ sudo systemctl reload nginx
$ sudo service reload nginx
Кроме того, после внесения изменений желательно проводить тестирование. Для этого предусмотрена команда «sudo nginx -t».
Существует несколько распространённых ошибок при настройке Nginx, но устранить их легко.
Nginx – это практичное решение при развёртывании веб-сервера или прокси. Его достоинствами считаются низкие требования к ресурсам и возможность обработки внушительного количества соединений синхронно. Понимание его особенностей позволит повысить эффективность веб-сервера. А если в процессе у вас возникнут вопросы, вы всегда можете обратиться в нашу техподдержку.