From 195b8c54963c1db632abb6b83bef5d46e96a849b Mon Sep 17 00:00:00 2001 From: Yaroslav Zhuravlev Date: Wed, 3 Dec 2025 17:37:22 +0000 Subject: [PATCH 1/3] fix: waf supported oses --- content/nginx/technical-specs.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/content/nginx/technical-specs.md b/content/nginx/technical-specs.md index e49275f5a..adc89b309 100644 --- a/content/nginx/technical-specs.md +++ b/content/nginx/technical-specs.md @@ -22,21 +22,18 @@ Dynamic modules are supported on the [same distributions as NGINX Plus](#support {{< table >}} -| Distribution | **Module:** [F5 WAF for NGINX]({{< ref "/waf/install" >}}) | **Module:** [GeoIP]({{< ref "/nginx/admin-guide/dynamic-modules/geoip.md" >}}) | **Module:** [GeoIP2]({{< ref "/nginx/admin-guide/dynamic-modules/geoip2.md" >}}) | **Module:** [HA-Keepalived]({{< ref "/nginx/admin-guide/high-availability/ha-keepalived-nodes.md#configuring-keepalived-for-an-additional-passive-node" >}}) | **Module:** [NGINX sync]({{< ref "/nginx/admin-guide/high-availability/configuration-sharing.md#installing-nginx-sync-on-the-primary-machine" >}}) | **Module:** [OpenTelemetry]({{< ref "/nginx/admin-guide/dynamic-modules/opentelemetry.md" >}}) | +| Distribution | **Module:** [F5 WAF for NGINX]({{< ref "/waf/changelog.md#packages" >}}) | **Module:** [GeoIP]({{< ref "/nginx/admin-guide/dynamic-modules/geoip.md" >}}) | **Module:** [GeoIP2]({{< ref "/nginx/admin-guide/dynamic-modules/geoip2.md" >}}) | **Module:** [HA-Keepalived]({{< ref "/nginx/admin-guide/high-availability/ha-keepalived-nodes.md#configuring-keepalived-for-an-additional-passive-node" >}}) | **Module:** [NGINX sync]({{< ref "/nginx/admin-guide/high-availability/configuration-sharing.md#installing-nginx-sync-on-the-primary-machine" >}}) | **Module:** [OpenTelemetry]({{< ref "/nginx/admin-guide/dynamic-modules/opentelemetry.md" >}}) | |--------------|------------|-------|---------|---------------|------------|---------------| | **AlmaLinux** | ❌ | ❌ | ✓ | ✓ | ✓ | ✓ | -| **Alpine Linux 3.17 & 3.18** | ❌ | ✓ | ✓ | ❌ | ❌ | ✓ | -| **Alpine Linux 3.19, 3.20, 3.21, 3.22** | ✓ (x86_64 only) | ✓ | ✓ | ❌ | ❌ | ✓ | +| **Alpine Linux 3.20, 3.21, 3.22** | 3.22 x86_64 only | ✓ | ✓ | ❌ | ❌ | ✓ | | **Amazon Linux 2** | ❌ | ✓ | ❌ | ❌ | ✓ | ❌ | | **Amazon Linux 2023** | ✓ (x86_64 only) | ❌ | ✓ | ❌ | ✓ | ✓ | | **Debian 11 & 12** | ✓ (x86_64 only) | ✓ | ✓ | ✓ | ✓ | ✓ | | **FreeBSD** | ❌ | ❌ | ✓ | ❌ | ❌ | ✓ | -| **Oracle Linux 8** | ✓ (x86_64 only) | ❌ | ✓ | ✓ | ✓ | ✓ | +| **Oracle Linux 8.1** | ✓ (x86_64 only) | ❌ | ✓ | ✓ | ✓ | ✓ | | **RHEL 8 & 9** | ✓ (x86_64 only) | ❌ | ✓ | ✓ | ✓ | ✓ | -| **Rocky Linux 8** | ❌ | ❌ | ✓ | ✓ | ✓ | ✓ | -| **Rocky Linux 9** | ✓ (x86_64 only) | ❌ | ✓ | ✓ | ✓ | ✓ | +| **Rocky Linux 8 & 9** | ✓ (x86_64 only) | ❌ | ✓ | ✓ | ✓ | ✓ | | **SLES** | ❌ | 15 only | ✓ | ✓ | ✓ | ✓ | -| **Ubuntu 20.04** | ❌ | ✓ | ✓ | ✓ | ✓ | ✓ | | **Ubuntu 22.04 & 24.04** | ✓ (x86_64 only) | ✓ | ✓ | ✓ | ✓ | ✓ | {{< /table >}} From 0416b48944c0549f2796cfb9e4f700734dc851f4 Mon Sep 17 00:00:00 2001 From: Yaroslav Zhuravlev Date: Wed, 3 Dec 2025 18:05:12 +0000 Subject: [PATCH 2/3] fix: table, add urls and items in tech specs --- .../admin-guide/dynamic-modules/dynamic-modules.md | 1 + content/nginx/releases.md | 4 ++++ content/nginx/technical-specs.md | 11 ++++++++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md b/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md index b8a72b471..5e27ff7ba 100644 --- a/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md +++ b/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md @@ -17,6 +17,7 @@ F5 NGINX Plus uses a modular architecture. New features and functionality can be Dynamic modules are shared object files (`.so`) that can be loaded at runtime using the [`load_module`](https://nginx.org/en/docs/ngx_core_module.html#load_module) directive in the NGINX configuration. +### NGINX-authored and NGINX-certified dynamic modules NGINX maintains the official NGINX Plus repository, which also provides packaged binaries for both [NGINX‑authored]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md#nginx-authored-dynamic-modules" >}}) and [NGINX‑certified community]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md#nginx-certified-community-dynamic-modules" >}}) dynamic modules. All modules in this repository are fully tested to ensure full compatibility with NGINX Plus. For module‑specific installation and usage instructions, select the corresponding package name in the table. diff --git a/content/nginx/releases.md b/content/nginx/releases.md index bc8b7eac4..22e2fc209 100644 --- a/content/nginx/releases.md +++ b/content/nginx/releases.md @@ -63,6 +63,8 @@ NGINX Plus R36 is a feature release: - TLS certificate compression with the `ssl_certificate_compression` directive for [`http`](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_certificate_compression), [`stream`](https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_certificate_compression), and [`mail`](https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html#ssl_certificate_compression). + - TLSv1.3 certificate compression is disabled by default. + - The [`$ssl_sigalg`](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#var_ssl_sigalg) and [`$ssl_client_sigalg`](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#var_ssl_client_sigalg) variables that return the signature algorithm for the client or server certificate for an SSL connection. - support for 0-RTT in QUIC when using OpenSSL 3.5.1 or newer. @@ -73,6 +75,8 @@ NGINX Plus R36 is a feature release: - Inheritance control for [headers](https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_header_inherit) and [trailers](https://nginx.org/en/docs/http/ngx_http_headers_module.html#add_trailer_inherit). +- The `volatile` parameter of the [`geo`](https://nginx.org/en/docs/http/ngx_http_geo_module.html#geo) directive, which indicates that the variable is not cacheable. + - Container images with popular modules, now including ACME, OpenTelemetry, and Prometheus exporter modules. {{< call-out "note" "More info" >}} [Announcing NGINX Plus R36](https://community.f5.com/kb/technicalarticles/f5-nginx-plus-r36-release-now-available/344514) blog post. {{< /call-out >}} diff --git a/content/nginx/technical-specs.md b/content/nginx/technical-specs.md index adc89b309..12db52862 100644 --- a/content/nginx/technical-specs.md +++ b/content/nginx/technical-specs.md @@ -18,11 +18,11 @@ NGINX Plus is available only as a binary; it is not distributed as source code. ## Dynamic Modules -Dynamic modules are supported on the [same distributions as NGINX Plus](#supported-distributions), unless noted otherwise in the table below. +[Dynamic modules]({{< ref "/nginx/admin-guide/dynamic-modules/dynamic-modules.md#nginx-authored-and-nginx-certified-dynamic-modules" >}}) are supported on the [same distributions as NGINX Plus](#supported-distributions), unless noted otherwise in the table below. {{< table >}} -| Distribution | **Module:** [F5 WAF for NGINX]({{< ref "/waf/changelog.md#packages" >}}) | **Module:** [GeoIP]({{< ref "/nginx/admin-guide/dynamic-modules/geoip.md" >}}) | **Module:** [GeoIP2]({{< ref "/nginx/admin-guide/dynamic-modules/geoip2.md" >}}) | **Module:** [HA-Keepalived]({{< ref "/nginx/admin-guide/high-availability/ha-keepalived-nodes.md#configuring-keepalived-for-an-additional-passive-node" >}}) | **Module:** [NGINX sync]({{< ref "/nginx/admin-guide/high-availability/configuration-sharing.md#installing-nginx-sync-on-the-primary-machine" >}}) | **Module:** [OpenTelemetry]({{< ref "/nginx/admin-guide/dynamic-modules/opentelemetry.md" >}}) | +| Distribution | [F5 WAF for NGINX]({{< ref "/waf/changelog.md#packages" >}}) | [GeoIP]({{< ref "/nginx/admin-guide/dynamic-modules/geoip.md" >}}) | [GeoIP2]({{< ref "/nginx/admin-guide/dynamic-modules/geoip2.md" >}}) | [HA-Keepalived]({{< ref "/nginx/admin-guide/high-availability/ha-keepalived-nodes.md#configuring-keepalived-for-an-additional-passive-node" >}}) | [NGINX sync]({{< ref "/nginx/admin-guide/high-availability/configuration-sharing.md#installing-nginx-sync-on-the-primary-machine" >}}) | [OpenTelemetry]({{< ref "/nginx/admin-guide/dynamic-modules/opentelemetry.md" >}}) | |--------------|------------|-------|---------|---------------|------------|---------------| | **AlmaLinux** | ❌ | ❌ | ✓ | ✓ | ✓ | ✓ | | **Alpine Linux 3.20, 3.21, 3.22** | 3.22 x86_64 only | ✓ | ✓ | ❌ | ❌ | ✓ | @@ -57,10 +57,12 @@ TLSv1.3 is supported starting from NGINX Plus R17 and is enabled by default in N TLSv1.2 and TLSv1.3 are the default SSL protocols starting from NGINX Plus R34 (if supported by the OpenSSL library). If OpenSSL 1.0.0 or older is used, the default SSL protocols are TLSv1 and TLSv1.1. +{{< call-out "note" "Important" >}} NGINX Plus is built on the latest minor release of each supported operating system platform. In many cases, the latest revisions of these operating systems are adapting their platforms to support OpenSSL 3.5 (for example, RHEL 9.7 and 10.1). In these situations, NGINX Plus requires that OpenSSL 3.5.0 or later is installed for proper operation. {{< /call-out >}} + ## Supported Deployment Environments - Bare metal -- Containers and Kubernetes +- [Containers](({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-docker.md" >}}) and Kubernetes - Public clouds: AWS, Google Cloud Platform, Microsoft Azure - Virtual machines @@ -114,6 +116,7 @@ See [Sizing Guide for Deploying NGINX Plus](https://www.f5.com/pdf/deployment-gu - [Cache Slice](https://nginx.org/en/docs/http/ngx_http_slice_module.html) – Create byte-range segments of large files, for more efficient caching - [Geo](https://nginx.org/en/docs/http/ngx_http_geo_module.html) – Create variables based on client IP address - [Map](https://nginx.org/en/docs/http/ngx_http_map_module.html) – Create variables based on other variables in requests +- [Num_map](https://nginx.org/en/docs/http/ngx_http_num_map_module.html) – Create variables whose values depend on numeric values or numeric value ranges - [Rewrite](https://nginx.org/en/docs/http/ngx_http_rewrite_module.html) – Test and change URI of request - [Split Clients](https://nginx.org/en/docs/http/ngx_http_split_clients_module.html) – Partition clients for A/B testing - [Sub](https://nginx.org/en/docs/http/ngx_http_sub_module.html) – Replace text string in response (rewrite content) @@ -139,6 +142,7 @@ See [Sizing Guide for Deploying NGINX Plus](https://www.f5.com/pdf/deployment-gu - [Mirror](https://nginx.org/en/docs/http/ngx_http_mirror_module.html) – Send copy of requests to one or more additional servers - [Proxy](https://nginx.org/en/docs/http/ngx_http_proxy_module.html) – Proxy and cache requests to HTTP server - [SCGI](https://nginx.org/en/docs/http/ngx_http_scgi_module.html) – Proxy and cache requests to SCGI server +- [Tunnel](https://nginx.org/en/docs/http/ngx_http_tunnel_module.html) – Handles CONNECT requests and establishes an end-to-end virtual connection for forward proxying - [Upstream](https://nginx.org/en/docs/http/ngx_http_upstream_module.html) – Proxy and cache requests to load-balanced pool of servers - [Upstream Health Checks](https://nginx.org/en/docs/http/ngx_http_upstream_hc_module.html) – Verify servers in load-balanced pool are operational - [uwsgi](https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html) – Proxy and cache requests to uwsgi server @@ -179,6 +183,7 @@ See [Sizing Guide for Deploying NGINX Plus](https://www.f5.com/pdf/deployment-gu - [Limit Conn](https://nginx.org/en/docs/stream/ngx_stream_limit_conn_module.html) – Limit concurrent connections by key - [Log](https://nginx.org/en/docs/stream/ngx_stream_log_module.html) – Log TCP and UDP transactions - [Map](https://nginx.org/en/docs/stream/ngx_stream_map_module.html) – Create variables based on other variables in requests +- [Num_map](https://nginx.org/en/docs/stream/ngx_stream_num_map_module.html) – Create variables whose values depend on numeric values or numeric value ranges - [MQTT Preread](https://nginx.org/en/docs/stream/ngx_stream_mqtt_preread_module.html) – Forward MQTT traffic without processing it - [MQTT Filter](https://nginx.org/en/docs/stream/ngx_stream_mqtt_filter_module.html) – Process Message Queuing Telemetry Transport protocol (MQTT) protocol - [Proxy](https://nginx.org/en/docs/stream/ngx_stream_proxy_module.html) – Proxy requests to TCP and UDP servers From 6399bcc47578ef240349cefeb036441dd39fc2eb Mon Sep 17 00:00:00 2001 From: yar Date: Wed, 3 Dec 2025 18:49:18 +0000 Subject: [PATCH 3/3] Apply suggestions from code review Co-authored-by: Jon Torre <78599298+JTorreG@users.noreply.github.com> --- content/nginx/admin-guide/dynamic-modules/dynamic-modules.md | 1 + content/nginx/technical-specs.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md b/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md index 5e27ff7ba..dd4c11d7a 100644 --- a/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md +++ b/content/nginx/admin-guide/dynamic-modules/dynamic-modules.md @@ -18,6 +18,7 @@ F5 NGINX Plus uses a modular architecture. New features and functionality can be Dynamic modules are shared object files (`.so`) that can be loaded at runtime using the [`load_module`](https://nginx.org/en/docs/ngx_core_module.html#load_module) directive in the NGINX configuration. ### NGINX-authored and NGINX-certified dynamic modules + NGINX maintains the official NGINX Plus repository, which also provides packaged binaries for both [NGINX‑authored]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md#nginx-authored-dynamic-modules" >}}) and [NGINX‑certified community]({{< ref "/nginx/admin-guide/installing-nginx/installing-nginx-plus.md#nginx-certified-community-dynamic-modules" >}}) dynamic modules. All modules in this repository are fully tested to ensure full compatibility with NGINX Plus. For module‑specific installation and usage instructions, select the corresponding package name in the table. diff --git a/content/nginx/technical-specs.md b/content/nginx/technical-specs.md index 12db52862..02736d419 100644 --- a/content/nginx/technical-specs.md +++ b/content/nginx/technical-specs.md @@ -142,7 +142,7 @@ See [Sizing Guide for Deploying NGINX Plus](https://www.f5.com/pdf/deployment-gu - [Mirror](https://nginx.org/en/docs/http/ngx_http_mirror_module.html) – Send copy of requests to one or more additional servers - [Proxy](https://nginx.org/en/docs/http/ngx_http_proxy_module.html) – Proxy and cache requests to HTTP server - [SCGI](https://nginx.org/en/docs/http/ngx_http_scgi_module.html) – Proxy and cache requests to SCGI server -- [Tunnel](https://nginx.org/en/docs/http/ngx_http_tunnel_module.html) – Handles CONNECT requests and establishes an end-to-end virtual connection for forward proxying +- [Tunnel](https://nginx.org/en/docs/http/ngx_http_tunnel_module.html) – Handle CONNECT requests and establishes an end-to-end virtual connection for forward proxying - [Upstream](https://nginx.org/en/docs/http/ngx_http_upstream_module.html) – Proxy and cache requests to load-balanced pool of servers - [Upstream Health Checks](https://nginx.org/en/docs/http/ngx_http_upstream_hc_module.html) – Verify servers in load-balanced pool are operational - [uwsgi](https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html) – Proxy and cache requests to uwsgi server