Skip to content

NGINX

Reverse Proxies & Load Balancers

NGINX is a high‑performance web server, load balancer, reverse proxy, API gateway and content cache.

C Latest release-1.30.2 · 12d ago Security brief →

Features

  • Acts as a high‑performance web server
  • Provides load balancing and reverse proxy capabilities
  • Functions as an API gateway
  • Offers content caching for performance optimization

Recent releases

View all 17 releases →
Upgrade now
release-1.30.2 Security relevant
RCE / SSRF

Buffer overflow fix

Upgrade now
release-1.31.1 Security relevant
RCE / SSRF

CVE‑2026‑9256 buffer overflow fix

Upgrade now
release-1.30.1 Security relevant
RCE / SSRF Breaking upgrade

HTTP/2 request injection fix

Upgrade now
release-1.31.0 Security relevant
RCE / SSRF Breaking upgrade

CVE fixes + forward proxy

release-1.30.0 Breaking risk
Breaking changes
  • Removed CLOCK_MONOTONIC_FAST support.
Notable features
  • Sticky sessions support for upstreams.
  • Default proxy HTTP version changed to HTTP/1.1 with keep‑alive enabled.
Full changelog

nginx-1.30.0 stable version has been released, incorporating new features and bug fixes from the 1.29.x mainline branch — including Early Hints, HTTP/2 to backend and Encrypted ClientHello, sticky sessions support for upstreams, Multipath TCP support, the default proxy HTTP version set to HTTP/1.1 with keep-alive enabled, and more.

What's Changed

  • Version bump 1.29.0 by @arut in https://github.com/nginx/nginx/pull/632
  • QUIC: silence unknown/reserved transport param "info" messages. by @arut in https://github.com/nginx/nginx/pull/633
  • Fixed -Wunterminated-string-initialization with gcc15. by @arut in https://github.com/nginx/nginx/pull/631
  • HTTP/3: fixed NGX_HTTP_V3_VARLEN_INT_LEN value. by @arut in https://github.com/nginx/nginx/pull/640
  • Win32: couple of platform detection fixes by @bavshin-f5 in https://github.com/nginx/nginx/pull/457
  • QUIC: fixed a typo. by @nandsky in https://github.com/nginx/nginx/pull/638
  • OpenSSL build fixes with various no-opt. by @pluknet in https://github.com/nginx/nginx/pull/634
  • QUIC: fixed sending acknowledgments with limited congestion window. by @pluknet in https://github.com/nginx/nginx/pull/655
  • QUIC: using QUIC API introduced in OpenSSL 3.5. by @pluknet in https://github.com/nginx/nginx/pull/646
  • SSL: support loading keys via OSSL_STORE. by @bavshin-f5 in https://github.com/nginx/nginx/pull/436
  • Core: added support for TCP keepalive parameters on macOS. by @pluknet in https://github.com/nginx/nginx/pull/709
  • HTTP Early Hints by @arut in https://github.com/nginx/nginx/pull/326
  • HTTP/3: indexed field line encoding for "103 Early Hints". by @pluknet in https://github.com/nginx/nginx/pull/746
  • Use NULL instead of 0 as null pointer constant by @ac000 in https://github.com/nginx/nginx/pull/702
  • Upstream: fixed reinit request with gRPC and Early Hints. by @pluknet in https://github.com/nginx/nginx/pull/750
  • QUIC: disabled OpenSSL 3.5 QUIC API support by default. by @pluknet in https://github.com/nginx/nginx/pull/751
  • nginx-1.29.0-RELEASE by @pluknet in https://github.com/nginx/nginx/pull/752
  • PCRE license fix for win32 zip by @pluknet in https://github.com/nginx/nginx/pull/753
  • QUIC: adjusted OpenSSL 3.5 QUIC API feature test. by @pluknet in https://github.com/nginx/nginx/pull/749
  • OPENSSL_VERSION_NUMBER fix for OpenSSL 3.0 by @pluknet in https://github.com/nginx/nginx/pull/775
  • kqueue build fixes by @pluknet in https://github.com/nginx/nginx/pull/777
  • HTTP/3: limited prefixed integers encoded length. by @pluknet in https://github.com/nginx/nginx/pull/124
  • HTTP/3: fixed handling :authority and Host with port. by @arut in https://github.com/nginx/nginx/pull/772
  • HTTP/2: fixed flushing early hints. by @arut in https://github.com/nginx/nginx/pull/808
  • HTTP/2 fixes for ":authority" vs "Host" by @pluknet in https://github.com/nginx/nginx/pull/803
  • Certificate compression by @pluknet in https://github.com/nginx/nginx/pull/788
  • Auth basic: fixed file descriptor leak on memory allocation error. by @pluknet in https://github.com/nginx/nginx/pull/833
  • smtp module fixes by @pluknet in https://github.com/nginx/nginx/pull/842
  • Changes 1.29.1 by @pluknet in https://github.com/nginx/nginx/pull/843
  • Added a previously missed changes entry in 1.29.1 relnotes. by @pluknet in https://github.com/nginx/nginx/pull/844
  • Removed legacy charset directive from default config example. by @MohamedKarrab in https://github.com/nginx/nginx/pull/829
  • QUIC: fixed ssl_reject_handshake error handling. by @pluknet in https://github.com/nginx/nginx/pull/889
  • Updated link to xslscript. by @pluknet in https://github.com/nginx/nginx/pull/854
  • Fixed inaccurate index directive error report by @willmafh in https://github.com/nginx/nginx/pull/881
  • SNI: using ClientHello callback. by @pluknet in https://github.com/nginx/nginx/pull/562
  • AWS-LC support changes by @pluknet in https://github.com/nginx/nginx/pull/848
  • Upstream: overflow detection in Cache-Control delta-seconds. by @pluknet in https://github.com/nginx/nginx/pull/898
  • Mail: xtext encoding (RFC 3461) in XCLIENT LOGIN. by @pluknet in https://github.com/nginx/nginx/pull/893
  • Added F5 CLA workflow. by @Maryna-f5 in https://github.com/nginx/nginx/pull/908
  • SSL: fixed "key values mismatch" with object cache inheritance. by @pluknet in https://github.com/nginx/nginx/pull/740
  • nginx-1.29.2 changes by @pluknet in https://github.com/nginx/nginx/pull/919
  • SSL: support for compressed server certificates with BoringSSL. by @pluknet in https://github.com/nginx/nginx/pull/823
  • HTTP CONNECT infrastructure by @arut in https://github.com/nginx/nginx/pull/935
  • Upstream: reset local address in case of error. by @arut in https://github.com/nginx/nginx/pull/942
  • SSL: $ssl_sigalg, $ssl_client_sigalg. by @pluknet in https://github.com/nginx/nginx/pull/932
  • Geo: the "volatile" parameter. by @dplotnikov-f5 in https://github.com/nginx/nginx/pull/943
  • Inheritance control for add_header and add_trailer. by @arut in https://github.com/nginx/nginx/pull/918
  • OCSP: fixed invalid type for the 'ssl_ocsp' directive. by @roman-f5 in https://github.com/nginx/nginx/pull/938
  • Fixed compilation warnings on Windows after c93a0c48af87. by @arut in https://github.com/nginx/nginx/pull/954
  • Modules compatibility: increased compat section size. by @arut in https://github.com/nginx/nginx/pull/952
  • nginx-1.29.3 changes by @arut in https://github.com/nginx/nginx/pull/953
  • Configure: ensure we get the "built by ..." line in nginx -V. by @ac000 in https://github.com/nginx/nginx/pull/905
  • Adding support for pcre 10.47 by @thierryba in https://github.com/nginx/nginx/pull/963
  • SSL: changed interface of ngx_ssl_set_client_hello_callback(). by @pluknet in https://github.com/nginx/nginx/pull/968
  • SSL: fixed build with BoringSSL, broken by 38a701d88. by @pluknet in https://github.com/nginx/nginx/pull/972
  • HTTP/2: extended guard for NULL buffer and zero length. by @pluknet in https://github.com/nginx/nginx/pull/978
  • Validate host by @pluknet in https://github.com/nginx/nginx/pull/966
  • Proxy: fixed segfault in URI change (issue #983). by @pluknet in https://github.com/nginx/nginx/pull/1004
  • OpenSSL ECH integration by @sftcd in https://github.com/nginx/nginx/pull/840
  • Update community health files by @alessfg in https://github.com/nginx/nginx/pull/727
  • SSL: avoid warning when ECH is not configured and not supported. by @QirunGao in https://github.com/nginx/nginx/pull/1011
  • Disabled bare LF in chunked transfer encoding. by @pluknet in https://github.com/nginx/nginx/pull/1016
  • HTTP/2 to upstream by @hongzhidao in https://github.com/nginx/nginx/pull/771
  • Quic: fixed segfault on handshake failure by @jeniksv in https://github.com/nginx/nginx/pull/1022
  • nginx-1.29.4-RELEASE by @pluknet in https://github.com/nginx/nginx/pull/1023
  • Fixed duplicate ids in the bug report template. by @bavshin-f5 in https://github.com/nginx/nginx/pull/1035
  • SSL: logging level of the "ech_required" TLS alert. by @arut in https://github.com/nginx/nginx/pull/1038
  • Win32: fixed C4319 warning with MSVC x86. by @bavshin-f5 in https://github.com/nginx/nginx/pull/1057
  • Add a HTTP_HOST parameter to default_params. by @ac000 in https://github.com/nginx/nginx/pull/1031
  • Year 2026. by @pluknet in https://github.com/nginx/nginx/pull/1076
  • Range filter: reasonable limit on multiple ranges. by @pluknet in https://github.com/nginx/nginx/pull/1075
  • Misc: moved documentation in generated ZIP archive. by @pluknet in https://github.com/nginx/nginx/pull/1078
  • Docs: Clarify -t option behavior in nginx man page by @uhliarik in https://github.com/nginx/nginx/pull/1089
  • Proxy v2 request body fixes. by @pluknet in https://github.com/nginx/nginx/pull/1058
  • Updated OpenSSL and PCRE used for win32 builds. by @arut in https://github.com/nginx/nginx/pull/1111
  • Upstream read before write by @arut in https://github.com/nginx/nginx/pull/1112
  • nginx-1.29.5-RELEASE by @arut in https://github.com/nginx/nginx/pull/1113
  • Version bump. by @arut in https://github.com/nginx/nginx/pull/1120
  • Proxy: fixed HTTP/2 upstream with caching enabled. by @hongzhidao in https://github.com/nginx/nginx/pull/1119
  • Fixed separator in parsing header lines with multiple values. by @VadimZhestikov in https://github.com/nginx/nginx/pull/1056
  • SCGI: fixed passing CONTENT_LENGTH in unbuffered mode. by @pluknet in https://github.com/nginx/nginx/pull/1118
  • Mp4: validate sync sample values in stss atom. by @CodeByMoriarty in https://github.com/nginx/nginx/pull/1147
  • Resolver: fixed off-by-one read in ngx_resolver_copy(). by @arut in https://github.com/nginx/nginx/pull/1152
  • QUIC Stateless Reset improvements by @pluknet in https://github.com/nginx/nginx/pull/1151
  • QUIC: fixed bpf compilation with newer Linux kernels. by @arut in https://github.com/nginx/nginx/pull/215
  • Updating welcome page with links and more details. by @buulam in https://github.com/nginx/nginx/pull/1138
  • QUIC: worker-bound stateless reset tokens. by @arut in https://github.com/nginx/nginx/pull/1159
  • QUIC: handle compat keylog callback errors by @lukefr09 in https://github.com/nginx/nginx/pull/1155
  • Added an option to skip the F5 CLA workflow. by @alessfg in https://github.com/nginx/nginx/pull/1153
  • IMAP bugfixes. by @pluknet in https://github.com/nginx/nginx/pull/1161
  • Upstream: added sticky sessions support for upstreams. by @bavshin-f5 in https://github.com/nginx/nginx/pull/1167
  • nginx-1.29.6 changes by @pluknet in https://github.com/nginx/nginx/pull/1177
  • Version bump 1.29.7. by @arut in https://github.com/nginx/nginx/pull/1181
  • Proxy authentication definitions. by @arut in https://github.com/nginx/nginx/pull/1178
  • Proxy: reset pending control frames on HTTP/2 upstream reinit. by @devnexen in https://github.com/nginx/nginx/pull/1135
  • gRPC: reset buffer chains on upstream reinit. by @devnexen in https://github.com/nginx/nginx/pull/1136
  • Multipath TCP support by @pluknet in https://github.com/nginx/nginx/pull/931
  • Logs: added COMPAT padding to ngx_log_t. by @dplotnikov-f5 in https://github.com/nginx/nginx/pull/1196
  • Upstream keepalive: enabled keepalive module by default. by @roman-f5 in https://github.com/nginx/nginx/pull/1080
  • Upstream keepalive: fixed parameter parsing. by @arut in https://github.com/nginx/nginx/pull/1207
  • Mp4: avoid zero size buffers in output. by @arut in https://github.com/nginx/nginx/pull/1149
  • Mp4: fixed possible integer overflow on 32-bit platforms. by @arut in https://github.com/nginx/nginx/pull/1209
  • Dav: destination length validation for COPY and MOVE. by @arut in https://github.com/nginx/nginx/pull/1210
  • Mail: host validation. by @arut in https://github.com/nginx/nginx/pull/1211
  • Mail: fixed clearing s->passwd in auth http requests. by @arut in https://github.com/nginx/nginx/pull/1212
  • Stream: fixed client certificate validation with OCSP. by @arut in https://github.com/nginx/nginx/pull/1213
  • nginx-1.29.7-RELEASE by @arut in https://github.com/nginx/nginx/pull/1215
  • Fixed the "include" directive inside the "geo" block. by @jimf5 in https://github.com/nginx/nginx/pull/1184
  • SSL: compatibility with OpenSSL 4.0. by @pluknet in https://github.com/nginx/nginx/pull/1183
  • Update CONTRIBUTING.md by @xuruidong in https://github.com/nginx/nginx/pull/1195
  • Upstream: fixed processing multiple 103 (early hints) responses. by @pluknet in https://github.com/nginx/nginx/pull/1241
  • Removed CLOCK_MONOTONIC_FAST support. by @jimf5 in https://github.com/nginx/nginx/pull/1243
  • Upstream: fix integer underflow in charset parsing by @DavidKorczynski in https://github.com/nginx/nginx/pull/1170
  • Added max_headers directive by @dekobon in https://github.com/nginx/nginx/pull/1116
  • fix $request_port / $is_request_port being empty if auth_request is used by @Zoey2936 in https://github.com/nginx/nginx/pull/1248
  • Upstream: reset early_hints_length on upstream reinit. by @devnexen in https://github.com/nginx/nginx/pull/1187
  • nginx-1.29.8-RELEASE by @pluknet in https://github.com/nginx/nginx/pull/1252
  • nginx-1.30.0-RELEASE by @pluknet in https://github.com/nginx/nginx/pull/1268

New Contributors

  • @MohamedKarrab made their first contribution in https://github.com/nginx/nginx/pull/829
  • @willmafh made their first contribution in https://github.com/nginx/nginx/pull/881
  • @dplotnikov-f5 made their first contribution in https://github.com/nginx/nginx/pull/943
  • @roman-f5 made their first contribution in https://github.com/nginx/nginx/pull/938
  • @sftcd made their first contribution in https://github.com/nginx/nginx/pull/840
  • @alessfg made their first contribution in https://github.com/nginx/nginx/pull/727
  • @QirunGao made their first contribution in https://github.com/nginx/nginx/pull/1011
  • @hongzhidao made their first contribution in https://github.com/nginx/nginx/pull/771
  • @jeniksv made their first contribution in https://github.com/nginx/nginx/pull/1022
  • @uhliarik made their first contribution in https://github.com/nginx/nginx/pull/1089
  • @VadimZhestikov made their first contribution in https://github.com/nginx/nginx/pull/1056
  • @CodeByMoriarty made their first contribution in https://github.com/nginx/nginx/pull/1147
  • @buulam made their first contribution in https://github.com/nginx/nginx/pull/1138
  • @lukefr09 made their first contribution in https://github.com/nginx/nginx/pull/1155
  • @devnexen made their first contribution in https://github.com/nginx/nginx/pull/1135
  • @jimf5 made their first contribution in https://github.com/nginx/nginx/pull/1184
  • @xuruidong made their first contribution in https://github.com/nginx/nginx/pull/1195
  • @DavidKorczynski made their first contribution in https://github.com/nginx/nginx/pull/1170
  • @dekobon made their first contribution in https://github.com/nginx/nginx/pull/1116
  • @Zoey2936 made their first contribution in https://github.com/nginx/nginx/pull/1248

Full Changelog: https://github.com/nginx/nginx/compare/release-1.28.3...release-1.30.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

About

Stars
30,534
Forks
7,944
Languages
C Vim Script XS

Install & Platforms

Install via
binary
Platforms
linux windows

Community & Support

Open source alternatives

Beta — feedback welcome: [email protected]