# Technical Specs
Type of document: Reference
Product: NGINX Plus
> Platforms supported by F5 NGINX Plus and dynamically loaded modules, supported SSL/TLS versions, supported deployment environments, and list of modules built into NGINX Plus.
---
NGINX Plus is available only as a binary; it is not distributed as source code. For additional platforms and modules, [contact us](https://www.f5.com/products/get-f5).
## Supported Distributions {#supported-distributions}
| Distribution | Supported on [PLS.37.2 CR](nginx/releases.md#pls.37.2.0) | Supported on [PLS.37.1 CR](nginx/releases.md#pls.37.1.1) |
|------------------------------|-----------------------------------------------------------------------------------|-----------------------------------------------------------------------------------|
| AlmaLinux | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64)
10 (x86_64, aarch64) | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64)
10 (x86_64, aarch64) |
| Alpine Linux | 3.21 (x86_64, aarch64)
3.22 (x86_64, aarch64)
3.23 (x86_64, aarch64)
3.24 (x86_64, aarch64) | 3.21 (x86_64, aarch64)
3.22 (x86_64, aarch64)
3.23 (x86_64, aarch64)
3.24 (x86_64, aarch64) |
| Amazon Linux | 2023 (x86_64, aarch64) | 2023 (x86_64, aarch64) |
| Debian | 12 (x86_64, aarch64)
13 (x86_64, aarch64) | 11 (x86_64, aarch64)
12 (x86_64, aarch64)
13 (x86_64, aarch64) |
| FreeBSD | 14.3+ (amd64)
15.0+ (amd64) | 14.3+ (amd64)
15.0+ (amd64) |
| Oracle Linux | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64) | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64) |
| Red Hat Enterprise Linux | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64)
10.1+ (x86_64, aarch64) | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64)
10.1+ (x86_64, aarch64) |
| Rocky Linux | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64)
10.1+ (x86_64, aarch64) | 8.1+ (x86_64, aarch64)
9.7+ (x86_64, aarch64)
10.1+ (x86_64, aarch64) |
| SUSE Linux Enterprise Server | 15 SP7+ (x86_64)
16 (x86_64, aarch64) | 15 SP7+ (x86_64)
16 (x86_64, aarch64) |
| Ubuntu | 22.04 (x86_64, aarch64)
24.04 (x86_64, aarch64)
26.04 (x86_64, aarch64) | 22.04 (x86_64, aarch64)
24.04 (x86_64, aarch64)
26.04 (x86_64, aarch64) |
## Dynamic Modules
[Dynamic modules](/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.
| | [F5 WAF for NGINX](/waf/changelog.md#packages) | [GeoIP](/nginx/admin-guide/dynamic-modules/geoip.md) | [HA-Keepalived](/nginx/admin-guide/high-availability/ha-keepalived-nodes.md#configuring-keepalived-for-an-additional-passive-node) | [NGINX sync](/nginx/admin-guide/high-availability/configuration-sharing.md#installing-nginx-sync-on-the-primary-machine) |
|------------------------|----------------------|------------------|-----------------------------|---------------|
| **RHEL-based*** | See [Packages](/waf/changelog/_index.md#packages) | ❌ | ✓ | ✓ |
| **Alpine Linux** | See [Packages](/waf/changelog/_index.md#packages) | ✓ | ❌ | ❌ |
| **Amazon Linux 2023** | See [Packages](/waf/changelog/_index.md#packages) | ❌ | ❌ | ✓ |
| **Debian**, **Ubuntu** | See [Packages](/waf/changelog/_index.md#packages) | ✓ | ✓ | ✓ |
| **FreeBSD** | ❌ | ❌ | ❌ | ❌ |
| **SLES** | ❌ | 15 only| ✓ | ✓ |
*RHEL-based operating systems include Red Hat Enterprise Linux, AlmaLinux, Oracle Linux, Rocky Linux.
## Supported SSL/TLS versions
For SSL/TLS protocols support, NGINX Plus relies on the cryptographic libraries used in the operating system, usually OpenSSL:
- TLSv1.3
- TLSv1.2
- TLSv1.1
- TLSv1
You can configure which protocols to enable or disable with the [ssl_protocols](https://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_protocols) directive.
TLSv1.2 and earlier are supported on all operating systems listed in [Supported Distributions](#supported-distributions).
TLS 1.3 is supported starting with NGINX Plus R17 and is enabled by default in NGINX Plus R29 and later. It requires OpenSSL 1.1.1 or later, which is available on all currently supported operating systems.
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.
**Note:** 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.
## Supported Deployment Environments
- Bare metal
- [Containers](/nginx/admin-guide/installing-nginx/installing-nginx-docker.md) and Kubernetes
- Public clouds: AWS, Google Cloud Platform, Microsoft Azure
- Virtual machines
## Recommended Hardware
See [Sizing Guide for Deploying NGINX Plus](https://www.f5.com/pdf/deployment-guide/Sizing-Guide-for-Deploying-NGINX-Plus-in-Virtualized-Environments-2021-06-03.pdf)
## Modules in the NGINX Plus Package
### Core
- [Core](https://nginx.org/en/docs/ngx_core_module.html) – Configure core NGINX runtime and event handling, including master and worker processes, connection acceptance and processing, accept mutexes, logging, thread pools, and worker resource limits
### Clustering
- [Zone Sync](https://nginx.org/en/docs/stream/ngx_stream_zone_sync_module.html) – Synchronize runtime state stored in supported shared memory zones across NGINX Plus nodes in a cluster
### HTTP Core
- [HTTP Core](https://nginx.org/en/docs/http/ngx_http_core_module.html) – Configure HTTP servers and locations, request processing, URI matching, client request handling, static file delivery
- [Addition](https://nginx.org/en/docs/http/ngx_http_addition_module.html) – Add the responses of specified subrequests before or after an HTTP response body
- [Autoindex](https://nginx.org/en/docs/http/ngx_http_autoindex_module.html) – Generate directory listings when an index file is not found
- [Charset](https://nginx.org/en/docs/http/ngx_http_charset_module.html) – Add a character set to the `Content-Type` field of HTTP response header and convert response content between character sets
- [Empty GIF](https://nginx.org/en/docs/http/ngx_http_empty_gif_module.html) – Generate and return a transparent 1×1-pixel GIF image from memory
- [Gunzip](https://nginx.org/en/docs/http/ngx_http_gunzip_module.html) – Decompress gzip-encoded responses for clients that do not support gzip encoding
- [Gzip](https://nginx.org/en/docs/http/ngx_http_gzip_module.html) – Compress HTTP response bodies using gzip encoding
- [Gzip Static](https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html) – Serve precompressed `.gz` files from disk instead of generating gzip-compressed responses at runtime
- [Headers](https://nginx.org/en/docs/http/ngx_http_headers_module.html) – Add fields to HTTP response headers and trailers, including `Expires` and `Cache-Control` headers
- [Index](https://nginx.org/en/docs/http/ngx_http_index_module.html) – Specify index files used in directory requests
- [Internal Redirect](https://nginx.org/en/docs/http/ngx_http_internal_redirect_module.html) – Perform an internal redirect after request-processing, connection, and access limits have been applied
- [Random Index](https://nginx.org/en/docs/http/ngx_http_random_index_module.html) – Process requests ending with a slash by selecting a random file from the requested directory as the index file
- [Real IP](https://nginx.org/en/docs/http/ngx_http_realip_module.html) – Replace the client address and port with values obtained from a trusted HTTP header or the PROXY protocol
- [SSI](https://nginx.org/en/docs/http/ngx_http_ssi_module.html) – Process Server Side Includes (SSI) commands embedded in HTTP response bodies
- [User ID](https://nginx.org/en/docs/http/ngx_http_userid_module.html) – Set and receive cookies that uniquely identify clients
- [WebDAV](https://nginx.org/en/docs/http/ngx_http_dav_module.html) – Provide file-management operations using the WebDAV `PUT`, `DELETE`, `MKCOL`, `COPY`, and `MOVE` methods
### HTTP Access Control and Authentication
- [Access](https://nginx.org/en/docs/http/ngx_http_access_module.html) – Control access based on client IP address (support access control lists [ACLs])
- [Auth Basic](https://nginx.org/en/docs/http/ngx_http_auth_basic_module.html) – Implement HTTP Basic Authentication scheme
- [Auth JWT](https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html) – Validate JSON Web Tokens
- [Auth Request](https://nginx.org/en/docs/http/ngx_http_auth_request_module.html) – Determine client authorization using subrequests to external authentication server
- [Auth Require](https://nginx.org/en/docs/http/ngx_http_auth_require_module.html) – Variable-based access control support
- [OIDC](https://nginx.org/en/docs/http/ngx_http_oidc_module.html) – Implement authentication as a Relying Party in OpenID Connect solution
- [Referer](https://nginx.org/en/docs/http/ngx_http_referer_module.html) – Control access based on `Referer` field in HTTP request header
- [Secure Link](https://nginx.org/en/docs/http/ngx_http_secure_link_module.html) – Process encrypted, time-limited links to content
### HTTP Advanced Configuration
- [Browser](https://nginx.org/en/docs/http/ngx_http_browser_module.html) – Create variables based on `User-Agent` field in HTTP request header
- [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)
### HTTP Logging
- [Log](https://nginx.org/en/docs/http/ngx_http_log_module.html) – Log HTTP transactions locally or to `syslog`
- [Session Log](https://nginx.org/en/docs/http/ngx_http_session_log_module.html) – Log HTTP transactions aggregated per session
### HTTP Media Delivery
- [F4F](https://nginx.org/en/docs/http/ngx_http_f4f_module.html) – Stream HDS (Adobe HTTP Dynamic Streaming; filename extensions **.f4f**, **.f4m**, **.f4x**)
- [FLV](https://nginx.org/en/docs/http/ngx_http_flv_module.html) – Stream FLV (Flash Video; filename extension **.flv**)
- [HLS](https://nginx.org/en/docs/http/ngx_http_hls_module.html) – Stream HLS (Apple HTTP Live Streaming; filename extensions **.m3u8**, **.ts**) dynamically generated from MP4 or MOV (filename extensions **.m4a**, **.m4v**, **.mov**, **.mp4**, and **.qt**)
- [MP4](https://nginx.org/en/docs/http/ngx_http_mp4_module.html) – Stream MP4 (filename extensions **.m4a**, **.m4v**, **.mp4**)
- Streaming of RTMP and DASH is provided by the third-party [RTMP](https://github.com/arut/nginx-rtmp-module) module
### HTTP Proxying
- [FastCGI](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html) – Proxy and cache requests to FastCGI server
- [gRPC](https://nginx.org/en/docs/http/ngx_http_grpc_module.html) – Proxy requests to gRPC server
- [Memcached](https://nginx.org/en/docs/http/ngx_http_memcached_module.html) – Proxy requests to memcached server
- [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) – 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
### HTTP Transaction Shaping
- [Limit Connections](https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html) – Limit concurrent connections from a client IP address or other keyed value
- [Limit Requests](https://nginx.org/en/docs/http/ngx_http_limit_req_module.html) – Limit rate of request processing for a client IP address or other keyed value
- [Limit Responses](https://nginx.org/en/docs/http/ngx_http_core_module.html#limit_rate) – Limit rate of responses per client connection
### HTTP/2, HTTP/3 and SSL/TLS
- [HTTP/2](https://nginx.org/en/docs/http/ngx_http_v2_module.html) – Process HTTP/2 traffic
- [HTTP/3](https://nginx.org/en/docs/http/ngx_http_v3_module.html) – Process HTTP/3 traffic
- [SSL/TLS](https://nginx.org/en/docs/http/ngx_http_ssl_module.html) – Process HTTPS traffic
### Mail
- [Mail Core](https://nginx.org/en/docs/mail/ngx_mail_core_module.html) – Proxy mail traffic
- [Auth HTTP](https://nginx.org/en/docs/mail/ngx_mail_auth_http_module.html) – Offload authentication processing from HTTP server
- [IMAP](https://nginx.org/en/docs/mail/ngx_mail_imap_module.html) – Implement capabilities and authentication methods for IMAP
- [POP3](https://nginx.org/en/docs/mail/ngx_mail_pop3_module.html) – Implement authentication methods for POP3 traffic
- [Proxy](https://nginx.org/en/docs/mail/ngx_mail_proxy_module.html) – Support proxy-related parameters for mail protocols
- [SMTP](https://nginx.org/en/docs/mail/ngx_mail_smtp_module.html) – Define accepted SASL authentication methods for SMTP clients
- [SSL/TLS](https://nginx.org/en/docs/mail/ngx_mail_ssl_module.html) – Implement SSL, STARTTLS, and TLS for mail protocols
### Programmability and Monitoring
- [NGINX Plus API](https://nginx.org/en/docs/http/ngx_http_api_module.html) – Provide REST API for accessing metrics, configuring upstream server groups dynamically, and managing key-value pairs, without the need to reload NGINX configuration
- [Key-Value Store](https://nginx.org/en/docs/http/ngx_http_keyval_module.html) – Create variables with values taken from key-value pairs managed by the [NGINX Plus API](https://nginx.org/en/docs/http/ngx_http_api_module.html#http_keyvals_)
- [Management](https://nginx.org/en/docs/ngx_mgmt_module.html) – [Configure licensing and usage reporting](solutions/about-subscription-licenses.md) of NGINX Plus installation to F5 licensing endpoint or [NGINX Instance Manager](nim/index.md)
- [Database Connector](https://nginx.org/en/docs/http/ngx_http_db_module.html) – Retrieve values from Redis database
- [JSON](https://nginx.org/en/docs/http/ngx_http_json_module.html) – Extract values from JSON documents and make them available as variables
### TCP and UDP Proxying and Load Balancing
- [Stream](https://nginx.org/en/docs/stream/ngx_stream_module.html) – Process TCP and UDP traffic
- [Access](https://nginx.org/en/docs/stream/ngx_stream_access_module.html) – Support IP-based access control lists (ACLs)
- [Geo](https://nginx.org/en/docs/stream/ngx_stream_geo_module.html) – Create variables based on client IP address
- [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
- [Pass](https://nginx.org/en/docs/stream/ngx_stream_pass_module.html) – Pass any accepted client connection to any configured listening socket in http, stream, mail, and other similar modules
- [Real IP](https://nginx.org/en/docs/stream/ngx_stream_realip_module.html) – Determine true origin IP address for proxied traffic
- [Return](https://nginx.org/en/docs/stream/ngx_stream_return_module.html) – Return specified value to client and close connection
- [Split Clients](https://nginx.org/en/docs/stream/ngx_stream_split_clients_module.html) – Partition clients for A/B testing
- [SSL/TLS](https://nginx.org/en/docs/stream/ngx_stream_ssl_module.html) – Process TCP traffic secured with SSL/TLS
- [SSL/TLS Preread](https://nginx.org/en/docs/stream/ngx_stream_ssl_preread_module.html) – Forward TCP traffic secured with SSL/TLS without decrypting it
- [Upstream](https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html) – Proxy and cache traffic to load-balanced pool of servers
- [Upstream Health Checks](https://nginx.org/en/docs/stream/ngx_stream_upstream_hc_module.html) – Verify servers in load-balanced pool are operational