NGiNX
Сервер NGiNX
NGiNX (engine x — англ. Engine X; по-русски произносится как энгинкс или энжин-икс) — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX и HP-UX). Начиная с версии 0.7.52 появилась экспериментальная бинарная сборка под Microsoft Windows. NGiNX позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями.
- Применение nginx целесообразно прежде всего для статических веб-сайтов и как обратного прокси-сервера перед динамическими сайтами:
- HTTP-сервер
- обслуживание неизменяемых запросов, индексных файлов, автоматическое создание списка файлов, кеш дескрипторов открытых файлов;
- акселерированное проксирование без кэширования, простое распределение нагрузки и отказоустойчивость;
- поддержка кеширования при акселерированном проксировании и FastCGI;
- акселерированная поддержка FastCGI и memcached серверов, простое распределение нагрузки и отказоустойчивость;
- модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, HTTP-аутентификация, SSI-фильтр;
- несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно;
- поддержка SSL;
- поддержка PSGI, WSGI;
- экспериментальная поддержка встроенного Perl.
- SMTP/IMAP/POP3-прокси сервер
- перенаправление пользователя на SMTP/IMAP/POP3-бэкенд с использованием внешнего HTTP-сервера аутентификации;
- простая аутентификация (LOGIN, USER/PASS);
- поддержка SSL и STARTTLS.
- HTTP-сервер
В nginx рабочие процессы обслуживают одновременно множество соединений, мультиплексируя их вызовами операционной системы select, epoll (Linux) и kqueue (FreeBSD). Рабочие процессы выполняют цикл обработки событий от дескрипторов. Полученные от клиента данные разбираются с помощью конечного автомата. Разобранный запрос последовательно обрабатывается цепочкой модулей, задаваемой конфигурацией. Ответ клиенту формируется в буферах, которые хранят данные либо в памяти, либо указывают на отрезок файла. Буфера объединяются в цепочки, определяющие последовательность, в которой данные будут переданы клиенту. Если операционная система поддерживает эффективные операции ввода-вывода, такие как writev и sendfile, то nginx применяет их по возможности.
- «Установка NGiNX на сервер»
- «Обновление NGiNX до текущей стабильной версии для Debian 9»
- «Завершение конфигурации NGiNX на 80-м порту»
- «Структура папок NGiNX на сервере Debian 9 для работы с виртуальными хостами»
- «Установка PHP 7.3 на сервер с Debian 9 (связка NGiNX + Apache)»
- «Как передать реальный IP для Apache, работающем за прокси NGiNX»
- Виртуальные хосты NGiNX
- «Минимальный конфиг виртуального хоста NGiNX для настройки работы домена в связке Apache + NGiNX»
- «Настройка NGiNX для подтверждения прав на получение SSL-сертификатов Let's Encrypt»
- «Получение SSL-сертификата Let's Encrypt для домена с помощью Certbot»
- «Настройка виртуального хоста NGiNX для работы по HTTPs с SSL-сертификатом Let's Encrypt»