Current release: 1.31.3, released 15 July 2026.
What it is
nginx is an open-source web server and reverse proxy designed to handle large numbers of concurrent network connections efficiently. It is commonly placed at the edge of an application stack to terminate TLS, serve static files, compress responses, cache content, route requests to application servers, and balance traffic across upstream services. Its event-driven architecture differs from the traditional process-or-thread-per-connection model associated with older web servers, making it well suited to high-throughput HTTP workloads and proxying. The open-source distribution provides a broad core feature set, while a commercially supported offering adds management, observability, and advanced traffic-management capabilities.
History
nginx was created to address the C10k-era challenge of serving many simultaneous connections with modest resource use. It gained adoption first as a high-performance static-content server and reverse proxy, then became a common front-end component for dynamic application stacks. Over time, its configuration language, proxy features, caching, load balancing, streaming support, and modular ecosystem expanded. It is now used both directly on servers and within containers, cloud environments, and Kubernetes-related traffic architectures. Development and stewardship moved from its original independent project into a commercial ecosystem after an acquisition, while the open-source project remains widely deployed.
Migration notes
Migration planning should focus less on moving the nginx binary and more on reproducing its request-processing behavior. Configurations can contain layered includes, inherited directives, conditional location matching, rewrites, internal redirects, maps, variables, and environment-specific templates. Small differences in location precedence, trailing-slash handling, URI rewriting, proxy path construction, header forwarding, redirect generation, and error-page behavior can change application routing or expose unintended endpoints. TLS settings, certificate automation, HTTP protocol behavior, client-body limits, timeouts, buffering, upload handling, compression, caching rules, rate limits, access controls, and real-client IP handling also frequently carry production assumptions that must be identified and tested. Third-party or dynamically loaded modules may provide security filtering, authentication, geo-routing, scripting, metrics, or protocol support that does not have a direct equivalent elsewhere. Moving from nginx to another proxy, ingress controller, CDN, application gateway, or service mesh therefore often requires translating behavior rather than mechanically converting configuration files. Moving to nginx can be complicated by expectations inherited from Apache-style per-directory configuration, application-generated rewrite rules, or platform-specific load balancer features. Container and Kubernetes deployments add another layer because an ingress controller may generate nginx configuration, making the effective behavior depend on controller annotations, templates, admission policies, and the controller's supported feature set rather than on a hand-maintained nginx.conf alone. Inventory active configuration after all includes and generated fragments are resolved, identify modules and upstream dependencies, and validate representative traffic paths with tests for routing, headers, authentication, caching, failure handling, upgrades, and TLS before cutover.
Release history
Version support status
| Cycle | Status | Date |
|---|---|---|
| nginx 1.31 | Unknown | No dates published |
| nginx 1.30 | Unknown | No dates published |
| nginx 1.29 | End of life | EOL 13 May 2026 |
| nginx 1.28 | End of life | EOL 14 April 2026 |
| nginx 1.27 | End of life | EOL 24 June 2025 |
| nginx 1.26 | End of life | EOL 23 April 2025 |
| nginx 1.25 | End of life | EOL 29 May 2024 |
| nginx 1.24 | End of life | EOL 23 April 2024 |
| nginx 1.23 | End of life | EOL 23 May 2023 |
| nginx 1.22 | End of life | EOL 11 April 2023 |
| nginx 1.21 | End of life | EOL 21 June 2022 |
| nginx 1.20 | End of life | EOL 24 May 2022 |
| nginx 1.19 | End of life | EOL 25 May 2021 |
| nginx 1.18 | End of life | EOL 20 April 2021 |
| nginx 1.16 | End of life | EOL 20 April 2020 |
| nginx 1.14 | End of life | EOL 23 April 2019 |
| nginx 1.12 | End of life | EOL 17 April 2018 |
