Compatibility target · NGINX Plus

Drop it in.
Nothing else
has to move.

ngx-sharp is an independently controlled NGINX-compatible application delivery platform. It keeps the NGINX Plus operating model your estate already depends on — API v9, active health checks, key-value zones, zone synchronization, JWT/JWE and OIDC — and adds HTTP/3 on both sides of the proxy.

ngx-sharp datapath Clients connect over HTTP/1.1, HTTP/2 and HTTP/3. ngx-sharp proxies to upstreams over HTTP/1.1, HTTP/2 and HTTP/3, carries TCP and UDP stream traffic, exposes the NGINX Plus API v9 control plane, and synchronizes runtime state with a second node. CONTROL PLANE GET /api/9 · POST /api/9/http/upstreams Clients BROWSERS MOBILE · API Upstreams SERVICES GRPC · FASTCGI ngx-sharp API V9 · CONTROL API ACTIVE HEALTH CHECKS KEYVAL · STATE FILES JWT / JWE · OIDC STICKY · SLOW START QUEUE · LEAST TIME QUIC · HTTP/3 HTTP/1.1 · H2 · H3 HTTP/1.1 · H2 · H3 proxy_http_version 3 TCP · UDP · TLS PREREAD STREAM · MQTT · MAIL ZONE SYNC KEYVAL · RATE LIMIT · STICKY-LEARN NGX-SHARP · NODE 02 MUTUAL TLS CLUSTER LINK
FIG. 01 — DATAPATH H3 IN · H3 OUT · ONE BINARY
§ 01

One platform decision.
Eight migration projects.

Organizations standardize on NGINX because it is compact, predictable, and widely understood. The operational dependency rarely stops at reverse proxying. Replace the platform and a single procurement decision detonates into parallel engineering work:

  • 01 Rewrite API clients and dashboards
  • 02 Translate configurations, replace proprietary directives
  • 03 Change package names, paths, services, automation
  • 04 Redesign identity and session-affinity controls
  • 05 Replace active health checks and dynamic upstreams
  • 06 Replace cross-node key-value and rate-limit state
  • 07 Recertify dynamic modules and operational procedures
  • 08 Accept another vendor's lifecycle and roadmap

ngx-sharp removes the first seven by preserving the NGINX Plus operating model — and answers the eighth by putting the package, the release process, the feature ports, and the roadmap under an independent product.

§ 02

The compatibility surface

For the targeted NGINX Plus operating model, ngx-sharp is designed to replace it in place. Migration becomes a staging-and-validation exercise rather than a redesign.

TAB. 01 — DROP-IN REPLACEMENT MODEL
Compatibility surfacengx-sharp behaviour
Executable and servicePreserves the nginx executable and service identity
ConfigurationThe standard NGINX configuration prefix, syntax, and NGINX Plus directives
Logs, PID, cache, statePreserves the conventional NGINX filesystem layout
Dynamic modulesThe standard module directory; advertises the nginx-plus-r37.0 ABI/dependency target
Debian transitionDeclares standard replacement relationships for nginx and nginx-plus packages
Status automationPreserves the versioned NGINX Plus API through v9, with earlier-version compatibility endpoints
Runtime configurationPreserves Plus-style zoned-upstream and key-value API writes; changes survive restarts
Process controlIncludes the NGINX Plus Control REST API alongside standard Unix signals
Health and balancingActive checks, least time, sticky modes, slow start, and request queues
IdentityPlus-style JWT/JWE and a native OIDC relying party
Cluster statePlus-style zone synchronization for keyvals, rate limits, and sticky-learn
Platform coveragePackaged for the same operating systems and releases as NGINX Plus
DistributionGPG-signed packages over a private mutual-TLS APT repository

“Drop-in” has a precise boundary. ngx-sharp is ABI-compatible with NGINX Plus and preserves its operational contracts, so NGINX Plus dynamic modules load against it unchanged. It is an independent product, not an F5 binary.

§ 03

What is in the package

The integrated NGINX Plus enterprise feature families, shipped as one binary and one Debian package. The enterprise control plane is built in, not assembled from third-party modules.

FEATURE 01

NGINX-compatible web & proxy core

The standard event-driven runtime, unchanged in behaviour and configuration model.

  • Static serving, reverse proxying, content caching
  • FastCGI, uWSGI, SCGI, Memcached, gRPC gateway
  • TLS termination and TLS to upstreams
  • Compression, ranges, slicing, secure links, mirroring
  • Asynchronous file I/O, worker threads, njs scripting
FEATURE 02

Versioned status & management API

A versioned JSON data model through API v9, with compatibility endpoints for earlier versions.

  • Connections, requests, processes, and workers
  • HTTP and Stream server zones and upstream peers
  • Health, availability, downtime, latency, response data
  • Caches, resolvers, limits, keyvals, TLS statistics
  • NGINX Plus Control REST API for process control
FEATURE 03

Active health checks

Probes run independently of user traffic, so a failing backend leaves rotation before production discovers it.

  • Configurable intervals, timeouts, and thresholds
  • Status, header, and body matching over HTTP and HTTPS
  • gRPC health checks; TCP and UDP checks in Stream
  • Check state and counters exposed in the API
  • Applies to dynamically added and removed peers
FEATURE 04

Advanced traffic distribution

Enterprise balancing controls for production traffic, not just round robin.

  • Least connections, hash, IP hash, random, least time
  • Slow start for recovered and newly added servers
  • Request queues when all eligible servers are busy
  • Sticky cookie, route, and learn modes
  • Weights, limits, backup, down, and drain controls
FEATURE 05

HTTP & Stream key-value stores

Runtime data becomes NGINX variables without a reload — inside the same API and sync model as the rest of the platform.

  • Dynamic deny and allow lists
  • Tenant and customer routing
  • Feature flags and maintenance switches
  • Stream routing and access control
  • API-managed entries with expiry and persistence
FEATURE 06

Cross-node state synchronization

Live request-processing state shared between nodes — not configuration files copied around.

  • HTTP and Stream key-value entries
  • Rate-limit state
  • Sticky-learn session state
  • Mutually authenticated cluster links
  • Independent nodes, eventual convergence
FEATURE 07

Identity at the gateway

Policy enforced before traffic reaches the application, without assembling auth from Lua, sidecars, and middleware.

  • JWT signature and claim validation
  • JWE decryption and encrypted-token handling
  • Keys from files, variables, or remote JWKS
  • Native OpenID Connect relying-party flows
  • Code exchange, sessions, refresh, logout, IdP metadata
FEATURE 08

HTTP/3 on both sides

Inbound QUIC from clients and outbound HTTP/3 to proxied upstream services in one platform.

  • HTTP/3 connections to upstream services
  • Configurable QUIC and header-compression behaviour
  • Connection reuse across the upstream lifecycle
  • Connections survive reloads and binary upgrades
  • HTTP/3 and TLS statistics in the same API
FEATURE 09

L4, protocol & media

Beyond ordinary HTTP proxying, the Stream and mail subsystems ship in the same package.

  • TCP and UDP load balancing
  • Stream health checks, keyvals, least time, zone sync
  • TLS preread and SNI-based Stream routing
  • PROXY protocol including vendor extensions
  • MQTT preread, POP3/IMAP/SMTP proxy, HLS and F4F
FEATURE 10

Monitoring & observability

Operational data plus deployment-ready presentation for the tools you already run.

  • Rich API v9 JSON statistics
  • Lightweight stub_status where legacy tools need it
  • Packaged web dashboard for API data
  • Prometheus exporter package
  • Per-zone, per-upstream, and per-worker statistics
FEATURE 11

Production packaging

Designed to enter an existing NGINX host with minimal operational change.

  • The standard NGINX file and service layout
  • Runtime state persists across restarts
  • Replaces nginx and nginx-plus packages in place
  • The same operating systems and releases as NGINX Plus
  • njs and Prometheus companion packages
FEATURE 12

Modules built by ngx-sharp

Optional capabilities are not compiled in — they ship as dynamic modules that ngx-sharp builds and releases itself.

  • Built and versioned alongside the server
  • Released on the same schedule
  • Certificates, Brotli, Lua, OpenTelemetry, geolocation, and more
  • Targets the NGINX Plus module ABI
  • One vendor for the server and its modules
§ 04

QUIC does not stop
at the edge.

Most platforms terminate HTTP/3 at the front door and fall back to HTTP/1.1 behind it. ngx-sharp goes beyond the original NGINX Plus baseline: it establishes HTTP/3 connections to proxied upstream services as well.

  • 01

    HTTP/3 all the way to the backend

    Clients reach the edge over QUIC, and the edge reaches your services over QUIC too — one platform, one configuration, no protocol downgrade in the middle.

  • 02

    Tuned for real traffic

    Header compression and flow control are configurable on the inbound and outbound paths alike, so header-heavy API traffic is not left sitting on defaults.

  • 03

    Survives routine operations

    QUIC connections keep working across configuration reloads and binary upgrades, so everyday changes do not drop long-lived sessions.

  • 04

    Visible in the tools you already run

    HTTP/3 and TLS statistics surface through the same API your dashboards and Prometheus collection already read. The new path is as observable as the old one.

NGINX.CONFEDGE → UPSTREAM
# QUIC in from clients
listen 443 quic reuseport;
listen 443 ssl;
http3 on;

location / {
    # ...and QUIC back out
    proxy_http_version 3;
    proxy_pass https://app_pool;
}

upstream app_pool {
    zone app_pool 1m;
    least_time header;
    server 10.0.3.11:443 slow_start=30s;
    server 10.0.3.12:443;
}
§ 05

Measured against
the alternatives

Both NGINX Plus and Angie PRO are capable platforms. The question is not which product is feature-rich — it is which operational contract your estate is already built on.

TAB. 02 — INTEGRATED NGINX PLUS ENTERPRISE FEATURE FAMILIES
Feature familyngx-sharpNGINX Plus
NGINX data plane and configuration modelIncludedOfficial implementation
API v9 rich statusIncludedIncluded
Writable upstream APIIncludedIncluded
Control REST APIIncludedIncluded
Active HTTP, gRPC, TCP, UDP health checksIncludedIncluded
HTTP and Stream keyvalsIncludedIncluded
Persistent runtime stateIncludedIncluded
Least time, slow start, queues, sticky modesIncludedIncluded
Zone synchronizationIncludedIncluded
JWT/JWE authenticationIncludedIncluded
Native OIDC relying partyIncludedIncluded
HTTP and Stream enterprise modulesIncludedIncluded
Dashboard and Prometheus integrationIncludedIncluded or packaged
HTTP/3 proxy connections to upstreamsBeyond the NGINX Plus baselineNot in the baseline
Independently controlled repo, release and roadmapYesVendor-controlled
Dynamic module set (certificates, Brotli, Lua, OpenTelemetry…)Built and shipped by ngx-sharpOfficial F5 repository
Official F5 provenance and supportNoYes

“Full feature set” means the integrated NGINX Plus enterprise feature families shipped by ngx-sharp — not a representation that ngx-sharp is the F5 product, nor that every optional module in F5's repository is bundled.

§ 06

The module set,
built by ngx-sharp

The base package carries the integrated enterprise control plane. Everything optional ships as a dynamic module — and every one of them is built, versioned, and released by ngx-sharp, from the same tree and on the same schedule as the server itself. They target the NGINX Plus module ABI, so nothing changes about how you load and configure them.

  • Automatic certificatesACME issuance and renewal, without an external client
  • Kerberos authenticationSPNEGO single sign-on enforced at the gateway
  • Brotli compressionBrotli encoding for dynamic responses and static files
  • Encrypted session variablesSession data carried in encrypted variables
  • FIPS mode verificationConfirms the crypto provider is running in FIPS mode
  • Geolocation, legacy databasesCountry and city lookups from MaxMind GeoIP
  • Geolocation, current databasesLookups from MaxMind GeoIP2 and GeoLite2
  • Header manipulationAdd, remove, and rewrite request and response headers
  • Image transformationResize, crop, and rotate images on the fly
  • Lua scriptingCustom logic inside the request lifecycle
  • Scripting toolkitShared runtime behind the variable and scripting modules
  • njs scriptingJavaScript for HTTP and Stream configurations
  • OpenTelemetry tracingDistributed traces exported to your collector
  • Passenger integrationRuns Ruby, Python, and Node applications in place
  • Embedded PerlPerl handlers and variables inside the configuration
  • Prometheus metricsA metrics endpoint rendered from the statistics API
  • RTMP streamingRTMP ingest with HLS and DASH publishing
  • Variable manipulationExtra operators for building and transforming variables
  • Response body substitutionSearch-and-replace applied to response bodies
  • XSLT transformationServer-side transformation of XML responses

One vendor builds the server and its modules, so a release is a single coherent thing to qualify — not a server plus a shopping list of separately versioned add-ons.

§ 07

What ngx-sharp is,
and what it is not

Procurement and architecture reviews turn on precise language. These are the statements we stand behind, and the ones we will never make — in writing, before you commit to an evaluation.

What we claim

  • ngx-sharp is an independent implementation targeting the NGINX Plus operating model.
  • It is a drop-in package and operational replacement for the targeted NGINX Plus model.
  • It includes the integrated NGINX Plus enterprise feature families described here.
  • It preserves API v9, the Control API, health checks, keyvals, JWT/JWE, OIDC, advanced balancing, and zone synchronization.
  • It includes inbound and outbound HTTP/3.
  • Its package, release decisions, and roadmap are independently controlled.

What we never claim

  • That ngx-sharp is NGINX Plus, is produced by F5, or receives F5 support.
  • Binary or byte identity with an official F5 build.
  • That every feature of every current NGINX Plus or Angie PRO release is included.
  • Universal performance, support, compliance, or price superiority.

Keep the control plane.
Change the vendor.

Bring your configuration, your API clients, your dashboards, and your module list. A qualified proof of value runs against your estate, in your staging environment, with your rollback path intact.