Skip to content
Draft
Show file tree
Hide file tree
Changes from 4 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 OSS 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" >}}
Loading