github u-sb/nginx-source sb/1.31.4-1

latest releases: sb/1.31.4-3, sb/1.31.4-2
4 days ago
Changes with nginx 1.31.4                                        19 Aug 2026

    *) Feature: the "proxy_protocol" directive in the stream and mail
       modules now supports the PROXY protocol version 2.

    *) Change: now HTTP/2 and gRPC requests to backends are always sent with
       the ":authority" pseudo-header, and HTTP/1.1 requests - with the
       "Host" header.

    *) Bugfix: a segmentation fault might occur in a worker process if the
       "select" method was used.

    *) Bugfix: incomplete gRPC responses with a non-zero "Content-Length"
       header line are now treated as malformed.

    *) Bugfix: in binary compatibility with third-party modules using script
       codes; the bug had appeared in 1.31.3.

    *) Bugfix: in the ngx_http_perl_module.
       Thanks to David Carlier.

    *) Bugfixes in HTTP/2, HTTP/3, ngx_http_image_filter_module, and
       ngx_http_grpc_module.

Integration Test Suite Run Result

  • Date: 2026-08-24 16:09:08 PDT
  • Nginx Version: nginx version: nginx-n.wtf/1.31.4
  • OpenSSL Version: OpenSSL 4.0.1 9 Jun 2026 (Library: OpenSSL 4.0.1 9 Jun 2026)
  • Execution Time: 1.27s

Summary

Total Examples Passed Failed Success Rate
21 20 1 95.2%

Test Results Detail

Category Test Example Result
HTTP & HTTPS Protocol Handshakes HTTP/1.1 Plaintext GET (200 OK) PASS
HTTP & HTTPS Protocol Handshakes HTTP/1.1 SSL GET (200 OK) PASS
HTTP & HTTPS Protocol Handshakes HTTP/2 SSL GET (200 OK) PASS
HTTP & HTTPS Protocol Handshakes HTTP/3 (QUIC) GET (200 OK) PASS
Compression & Data Integrity Uncompressed Payload Hash Integrity PASS
Compression & Data Integrity Brotli Dynamic Compression & Decompress Hash Match PASS
Compression & Data Integrity Zstd Dynamic Compression & Decompress Hash Match PASS
Compression & Data Integrity Brotli Static (.br) Pre-compression Serving PASS
Compression & Data Integrity Zstd Static (.zst) Pre-compression Serving PASS
Partial Content & Range 206 Responses Uncompressed Range Request (0-499 bytes) Returns 206 & Partial Data Match PASS
Partial Content & Range 206 Responses Zstd Static Pre-compressed Range Request Returns 206 & 500 Bytes Slice PASS
Partial Content & Range 206 Responses Brotli Static Pre-compressed Range Request Returns 206 & 500 Bytes Slice FAIL
Partial Content & Range 206 Responses Zstd Dynamic Compression Range Request Falls Back to 200 OK (RFC Compliant) PASS
Partial Content & Range 206 Responses Brotli Dynamic Compression Range Request Falls Back to 200 OK (RFC Compliant) PASS
Post-Quantum Cryptography (PQC) & TLS 1.3 (OpenSSL 4.0) PQC Key Exchange Group Negotiation (X25519MLKEM768) PASS
Post-Quantum Cryptography (PQC) & TLS 1.3 (OpenSSL 4.0) TLS 1.3 Session Resumption (Session Ticket Re-use) PASS
Compression & Encoding Negotiation Multi-Encoding Default Priority (zstd > br > gzip) PASS
Compression & Encoding Negotiation Multi-Encoding q-value Filter Bypass (br;q=0 selects zstd) PASS
Compression & Encoding Negotiation Client q-value Preference Negotiation (zstd;q=0, br;q=1.0 selects br) PASS
Compression & Encoding Negotiation Vary: Accept-Encoding Header Verification PASS
Server Metadata Server Header Present PASS

Failures & Diagnostics

Partial Content & Range 206 Responses - Brotli Static Pre-compressed Range Request Returns 206 & 500 Bytes Slice
Status: 200, Data Size: 1475, Headers: HTTP/1.1 200 OK | Server: nginx-n.wtf/1.31.4 | Date: Mon, 24 Aug 2026 23:09:07 GMT | Content-Type: text/plain | Content-Length: 1475 | Last-Modified: Mon, 24 Aug 2026 23:09:07 GMT | Connection: keep-alive | Vary: Accept-Encoding | ETag: "6a8ccf13-5c3" | Content-Encoding: br | Alt-Svc: h3=":8443"; ma=86400

Don't miss a new nginx-source release

NewReleases is sending notifications on new releases.