Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions content/includes/nginx-plus/oss-plus-comparison.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
docs:
---

{{< call-out "note" >}}For a detailed comparison between NGINX Plus and NGINX Open Source, refer to [Differences between NGINX Open Source and NGINX Plus](https://www.f5.com/placeholder) on the F5 website.{{</ call-out >}}
177 changes: 116 additions & 61 deletions content/nginxaas-azure/overview/feature-comparison.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Feature comparison
title: Feature overview
weight: 300
description: Compare NGINXaaS for Azure with other NGINX offerings.
toc: false
Expand All @@ -9,63 +9,118 @@ type:
- concept
---

{{<bootstrap-table "table table-striped table-bordered">}}

|**Load Balancer**<br>&nbsp;&nbsp; |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**F5 NGINXaaS<br>for Azure** |
|----------------------------------------|---------------------|---------------------|--------------------------|
|&nbsp;&nbsp;[HTTP](https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/) and [TCP/UDP](https://docs.nginx.com/nginx/admin-guide/load-balancer/tcp-udp-load-balancer/) support |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[Layer 7 request routing](https://www.nginx.org/en/docs/http/ngx_http_core_module.html#location) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[Session persistence](https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/#enabling-session-persistence) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[Active health checks](https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[DNS service-discovery integration](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#service) | |{{<check>}} |{{<check>}} |
|**Content Cache** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;[Static and dynamic content caching](https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/)|{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[Cache-purging API](https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/#purging-content-from-the-cache) | |{{<check>}} | |
|&nbsp;&nbsp;MQTT protocol support for IOT devices | |{{<check>}} |{{<check>}} |
|**Web Server and Reverse Proxy** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;Origin server for static content |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;Reverse proxy: [HTTP](https://nginx.org/en/docs/http/ngx_http_proxy_module.html), [FastCGl](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html),<br>&nbsp;&nbsp;[memcached](https://nginx.org/en/docs/http/ngx_http_memcached_module.html), [SCGI](https://nginx.org/en/docs/http/ngx_http_scgi_module.html), [uwsgi](https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html) |{{<check>}} | {{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[HTTP/2 gateway](https://www.nginx.org/en/docs/http/ngx_http_v2_module.html) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[gRPC proxy](https://nginx.org/en/docs/http/ngx_http_grpc_module.html) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[HTTP/2 server push](https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[HTTP/3 over QUIC](https://nginx.org/en/docs/http/ngx_http_v3_module.html) |{{<check>}} |{{<check>}} |{{<check>}} |
|**Security Controls** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;[HTTP basic authentication](https://www.nginx.org/en/docs/http/ngx_http_auth_basic_module.html) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[HTTP authentication subrequests](https://nginx.org/en/docs/http/ngx_http_auth_request_module.html) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[IP address-based access control lists](https://nginx.org/en/docs/http/ngx_http_access_module.html) |{{<check>}}|{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[Rate limiting](https://blog.nginx.org/blog/rate-limiting-nginx) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;Dual-stack RSA/ECC SSL/TLS offload |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;TLS 1.3 support |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[JWT authentication](https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;OpenID Connect single sign-on<br>&nbsp;&nbsp;(SSO) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;Internal redirect | |{{<check>}} | |
|&nbsp;&nbsp;NGINX as a SAML Service Provider | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[NGINX App Protect WAF](https://www.f5.com/products/nginx/nginx-app-protect) (additional cost) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[NGINX App Protect DoS](https://www.f5.com/products/nginx/nginx-app-protect) (additional cost) | |{{<check>}} | |
|**Monitoring** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;Export to [external monitoring tools](https://docs.nginx.com/nginx/admin-guide/monitoring/live-activity-monitoring/) |{{<check>}} |{{<check>}} |Export metrics to<br>Azure Monitor |
|&nbsp;&nbsp;Built-in dashboard | |{{<check>}} |[Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/overview)<br> and [Azure Portal](https://azure.microsoft.com/en-us/get-started/azure-portal) |
|&nbsp;&nbsp;[Extended status with 100+<br>&nbsp;&nbsp;additional metrics](https://docs.nginx.com/nginx/admin-guide/monitoring/live-activity-monitoring/) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;Native Open Telemetry Tracing | |{{<check>}} | |
|**High Availability (HA)** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;[Active-active](https://docs.nginx.com/nginx/admin-guide/high-availability/) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[Active-passive](https://docs.nginx.com/nginx/admin-guide/high-availability/) | |{{<check>}} | Not Applicable |
|&nbsp;&nbsp;[Configuration synchronization<br>&nbsp;&nbsp;across cluster](https://docs.nginx.com/nginx/admin-guide/high-availability/configuration-sharing/) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[State sharing](https://docs.nginx.com/nginx/admin-guide/high-availability/zone_sync/): sticky-learn session<br>&nbsp;&nbsp;persistence, rate limiting, key-value<br>&nbsp;&nbsp;stores | |{{<check>}} |{{<check>}} |
|**Programmability** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;[NGINX JavaScript module](https://www.f5.com/company/blog/nginx/harnessing-power-convenience-of-javascript-for-each-request-with-nginx-javascript-module) |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;[NGINX Plus API for dynamic<br>&nbsp;&nbsp;reconfiguration](https://docs.nginx.com/nginx/admin-guide/load-balancer/dynamic-configuration-api/) | |{{<check>}} | |
|&nbsp;&nbsp;[Key-value store](https://nginx.org/en/docs/http/ngx_http_keyval_module.html) | |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;Dynamic reconfiguration without<br>&nbsp;&nbsp;process reloads | |{{<check>}} | |
|**Streaming Media** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;Live streaming: RTMP, HLS, DASH |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;VOD: Flash (FLV), MP4 |{{<check>}} |{{<check>}} |{{<check>}} |
|&nbsp;&nbsp;Adaptive bitrate VOD: [HLS](https://nginx.org/en/docs/http/ngx_http_hls_module.html), [HDS](https://nginx.org/en/docs/http/ngx_http_f4f_module.html) | |{{<check>}} | |
|&nbsp;&nbsp;[MP4 bandwidth controls](https://nginx.org/en/docs/http/ngx_http_mp4_module.html) | |{{<check>}} | |
|**Third-party ecosystem** |**NGINX Open<br>Source** |**NGINX Plus<br>&nbsp;** |**NGINXaaS<br>for Azure** |
|&nbsp;&nbsp;[Ingress controller](https://www.f5.com/products/nginx/nginx-ingress-controller) |{{<check>}} |{{<check>}} | |
|&nbsp;&nbsp;OpenShift Router |{{<check>}} |{{<check>}} | |
|&nbsp;&nbsp;[Dynamic modules repository](https://www.f5.com/go/product/nginx-modules) | |{{<check>}} |[Image-Filter](https://nginx.org/en/docs/http/ngx_http_image_filter_module.html)<br />[njs](https://nginx.org/en/docs/njs/)<br />[OpenTelemetry](https://nginx.org/en/docs/ngx_otel_module.html)<br />[XSLT](https://nginx.org/en/docs/http/ngx_http_xslt_module.html) |
|&nbsp;&nbsp;Deployable as a service | | |Microsoft Azure |
|&nbsp;&nbsp;[Commercial support](https://my.f5.com/manage/s/article/K000140156/) | |{{<check>}} |{{<check>}} |
{{</bootstrap-table>}}
NGINXaaS for Azure delivers the core capabilities of NGINX as a managed service, integrated with Microsoft Azure. It provides most of the features of NGINX Open Source and many from NGINX Plus, but some capabilities are not included.

Below is a feature breakdown with notes on support and limitations.


## Load balancing

- [HTTP and TCP/UDP load balancing](https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/)
- [Layer 7 request routing](https://www.nginx.org/en/docs/http/ngx_http_core_module.html#location)
- [Session persistence](https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/#enabling-session-persistence)
- [Active health checks](https://docs.nginx.com/nginx/admin-guide/load-balancer/http-health-check/) (not in OSS, available in Plus)
- [DNS-based service discovery](https://nginx.org/en/docs/http/ngx_http_upstream_module.html#service)

---

## Content caching

- [Static and dynamic content caching](https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/)
- MQTT protocol support for IoT devices

**Limitation:** [Cache purging API](https://docs.nginx.com/nginx/admin-guide/content-cache/content-caching/#purging-content-from-the-cache) (Plus feature) is not available.

---

## Web server and reverse proxy

- Origin server for static content
- Reverse proxy for [HTTP](https://nginx.org/en/docs/http/ngx_http_proxy_module.html), [FastCGI](https://nginx.org/en/docs/http/ngx_http_fastcgi_module.html), [memcached](https://nginx.org/en/docs/http/ngx_http_memcached_module.html), [SCGI](https://nginx.org/en/docs/http/ngx_http_scgi_module.html), and [uwsgi](https://nginx.org/en/docs/http/ngx_http_uwsgi_module.html)
- [HTTP/2 gateway](https://www.nginx.org/en/docs/http/ngx_http_v2_module.html)
- [gRPC proxy](https://nginx.org/en/docs/http/ngx_http_grpc_module.html)
- [HTTP/2 server push](https://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push)
- [HTTP/3 over QUIC](https://nginx.org/en/docs/http/ngx_http_v3_module.html)

---

## Security

- [HTTP basic authentication](https://www.nginx.org/en/docs/http/ngx_http_auth_basic_module.html)
- [Authentication subrequests](https://nginx.org/en/docs/http/ngx_http_auth_request_module.html) (for external auth)
- [IP-based access controls](https://nginx.org/en/docs/http/ngx_http_access_module.html)
- [Rate limiting](https://blog.nginx.org/blog/rate-limiting-nginx)
- Dual-stack RSA/ECC SSL/TLS offload
- TLS 1.3 support
- [JWT authentication](https://nginx.org/en/docs/http/ngx_http_auth_jwt_module.html) (Plus feature)
- OpenID Connect SSO (Plus feature)
- NGINX as a SAML Service Provider (Plus feature)
- [NGINX App Protect WAF](https://www.f5.com/products/nginx/nginx-app-protect) (extra cost)

**Limitations:**

- Internal redirect and App Protect DoS (Plus features) are not available.

---

## Monitoring

- Export metrics directly into [Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/overview)
- Dashboards in [Azure Monitor](https://learn.microsoft.com/en-us/azure/azure-monitor/overview) and [Azure Portal](https://azure.microsoft.com/en-us/get-started/azure-portal)
- [Extended status with 100+ metrics](https://docs.nginx.com/nginx/admin-guide/monitoring/live-activity-monitoring/)

**Limitations:**

- No built-in live dashboard like NGINX Plus; visibility is provided through Azure Monitor instead.
- Native OpenTelemetry tracing is not available.

---

## High availability (HA)

- [Active-active HA](https://docs.nginx.com/nginx/admin-guide/high-availability/)
- [Configuration synchronization across the cluster](https://docs.nginx.com/nginx/admin-guide/high-availability/configuration-sharing/)
- [State sharing](https://docs.nginx.com/nginx/admin-guide/high-availability/zone_sync/) for session persistence, rate limiting, and key-value store

**Limitation:** [Active-passive HA](https://docs.nginx.com/nginx/admin-guide/high-availability/) is not applicable in the managed service model.

---

## Programmability

- [NGINX JavaScript (njs) module](https://www.f5.com/company/blog/nginx/harnessing-power-convenience-of-javascript-for-each-request-with-nginx-javascript-module)
- [Key-value store](https://nginx.org/en/docs/http/ngx_http_keyval_module.html)

**Limitations:**

- [NGINX Plus API for dynamic reconfiguration](https://docs.nginx.com/nginx/admin-guide/load-balancer/dynamic-configuration-api/) (Plus feature) is not available.

---

## Streaming media

- Live streaming: RTMP, HLS, DASH
- VOD: Flash (FLV), MP4

**Limitation:** Adaptive bitrate streaming (HLS/HDS) and [MP4 bandwidth controls](https://nginx.org/en/docs/http/ngx_http_mp4_module.html) (Plus features) are not available.

---

## Ecosystem and extensibility

- Dynamic module support for:
- [Image-Filter](https://nginx.org/en/docs/http/ngx_http_image_filter_module.html)
- [njs](https://nginx.org/en/docs/njs/)
- [OpenTelemetry](https://nginx.org/en/docs/ngx_otel_module.html)
- [XSLT](https://nginx.org/en/docs/http/ngx_http_xslt_module.html)
- Delivered as a managed service in Microsoft Azure
- [Commercial support](https://my.f5.com/manage/s/article/K000140156/) from F5

**Limitations:**

- [Ingress Controller](https://www.f5.com/products/nginx/nginx-ingress-controller) and OpenShift Router are not included.
- Dynamic module repository is limited compared to NGINX Plus.

---

{{< include "/nginx-plus/oss-plus-comparison.md" >}}