How Does NGINX Unit Compare to NGINX Web Server?
- NGINX Unit was created by the original NGINX team on an all-new, open source codebase.
- The architecture incorporates insights from over a decade of running the world’s most popular web server.
- Unlike the NGINX web server, NGINX Unit uses a multi-process, multi-threaded architecture.
Runs Application Code
- The NGINX web server is often deployed as a reverse proxy in front of web applications. NGINX Unit can run the application code natively, locating the complete application configuration in one place.
- NGINX Unit can run web applications and APIs written in Java, PHP, Python, or Ruby without an intermediate process manager or application server.
- NGINX Unit can serve both the static assets and the dynamic content of a web application.
Fully Dynamic Configuration Experience
- NGINX Unit is configured entirely with JSON, so there is no new configuration syntax to learn.
- Changes are applied immediately, without reloads and without interruption to in-flight requests.
- You can modify a single value or replace the entire configuration through the configuration API.
Why Use NGINX Unit?
Web applications typically need a stack of reverse proxies, web servers, and application servers. NGINX Unit combines all those functions in a single component with a common configuration, allowing you to deliver an entire single-page application or a web API endpoint from the same server.
NGINX Unit provides a lightweight runtime for application code – ideal for building and deploying microservices. With support for multiple programming languages and frameworks, NGINX Unit provides the same development, configuration, and deployment experience for all your microservices.
Efficiently co-locate microservices without losing any of the benefits of independent development, deployment, and application isolation. NGINX Unit delivers all the benefits of microservices in a simpler and more scalable form factor.
NGINX Unit uses familiar JSON/REST configuration, a container-friendly footprint, and a modern TLS implementation to traditional apps.
With NGINX Unit you can create a cloud-native monolith from existing applications, without touching the application code.
NGINX Unit also facilitates monolith-to-microservices migrations by performing the request routing – moving it closer to the runtime and within the control of the app dev team.
Secure App Runtimes
Delivering end-to-end TLS still often involves decrypted network hops and opportunities for interception. NGINX Unit provides true end-to-end TLS with encryption all the way to the runtime. NGINX Unit handles the TLS layer and communicates directly with the application code over shared memory.
Certificate management is handled by the same JSON/REST configuration API but is decoupled from the application. A single certificate can be shared across multiple apps or automatically matched against the application hostname.
You can run applications in an isolated environment to protect them and the host from each other. NGINX Unit uses Linux namespaces, cgroups, and filesystem isolation to provide a secure runtime for each application.