NGINX Unit — это лёгкий и универсальный сервер приложений с открытым исходным кодом, разработанный компанией NGINX, Inc. и впервые представленный в 2017 году. Он предназначен для упрощения стека веб-приложений путём объединения нескольких функций в одном компоненте: обслуживания статического контента, запуска кода на различных языках программирования и обработки запросов с возможностью динамической настройки без перезагрузки сервера.
Unit был создан с целью предоставить разработчикам и системным администраторам гибкое и высокопроизводительное решение для современных распределённых приложений. Его архитектура основана на многопроцессной модели с асинхронной многозадачностью, что обеспечивает надёжность, безопасность и масштабируемость. Управление сервером осуществляется через RESTful JSON API, позволяя изменять конфигурацию в реальном времени без прерывания работы сервисов.
- Поддержка восьми языков программирования: PHP, Python, Ruby, Perl, Go, Node.js, Java (Servlet), а также WebAssembly.
- Обслуживание статического контента: возможность работы в качестве самостоятельного веб-сервера для обслуживания статических файлов.
- Динамическая конфигурация: изменение настроек сервера в реальном времени с использованием RESTful JSON API без необходимости перезагрузки.
- Гибкая маршрутизация запросов: поддержка сложных правил маршрутизации, включая регулярные выражения и использование заголовков HTTP.
- Совместная работа приложений: возможность запуска приложений на разных языках и версиях одновременно на одном сервере.
- Поддержка WebAssembly: возможность выполнения серверного кода на основе WebAssembly.
- Группы серверов и балансировка нагрузки: поддержка динамической балансировки нагрузки с использованием взвешенного кругового метода.
- Поддержка заголовков прокси: возможность идентификации исходного IP-адреса через заголовки X-Forwarded-For и аналогичные.