Extensibility with NGINX Plus
This document explains how F5 NGINX Plus can extend the functionality of F5 NGINX Ingress Controller.
NGINX Ingress Controller works with NGINX as well as NGINX Plus, a commercial closed source version of NGINX which has additional features and support from NGINX Inc. NGINX Ingress Controller can leverage functionality from NGINX Plus to extend its base capabilities.
Additional features
- Real-time metrics: Metrics for NGINX Plus and application performance are available through the API or the NGINX Status Page. These metrics can also be exported to Prometheus.
- Additional load balancing methods: The
least_time
andrandom two least_time
methods and their derivatives become available. The NGINXngx_http_upstream_module
documentation has the complete list of load balancing methods. - Session persistence: The sticky cookie method becomes available. See the Ingress Resource and Custom Resource examples.
- Active health checks: See the Ingress Resource and Custom Resource examples.
- JWT validation: See the Ingress Resource and Custom Resource examples.
For a comprehensive guide of NGINX Plus features available with Ingress resources, see the ConfigMap and Annotations documentation.
Note:
NGINX Plus features are configured for Ingress resources using Annotations that start withnginx.com
.
For a comprehensive guide of NGINX Plus features available with custom resources, see the Policy, VirtualServer and TransportServer documentation.
Dynamic reconfiguration
NGINX Ingress Controller updates the configuration of the load balancer to reflect changes every time the number of pods exposed through an Ingress resource changes. When using NGINX, the configuration file must be changed then reloaded.
For NGINX Plus, its dynamic reconfiguration is utilized, updating NGINX Plus without reloading. This avoids the increase of memory usage caused by reloads (Particularly with large volumes of client requests) and when load balancing applications with long-lived connections (Such as those using WebSockets or handling file uploads, downloads or streaming).