Product

Product Features How to Compare Docs Screenshots Why

Start here

Getting started Download Guides Frequently asked questions

More

Security Support Roadmap About

Where this is going

Roadmap, and the gaps we already know about

Nothing here is a promise with a date on it. It is one person's list, published so you can see whether the thing you need is on it.

Being worked on

Next

In progress

Per site and per backend traffic numbers

The biggest gap. stub_status gives seven numbers for the whole server and nothing per site. The generated log format already carries $upstream_addr, $upstream_response_time, $request_time, $status and $upstream_cache_status, which is everything a log tailer would need for requests per second, the status code mix, p50, p95 and p99 latency, cache hit rate and which backend served each request.

The setting exists in the database and nothing reads it. There is no log tailer and no dashboard page. This is written as a plan, not as a feature, because documentation promising something nobody has written is the worst kind of wrong.

Planned

Single sign on for proxied applications

Putting an identity provider in front of an application that has none of its own. We score one out of five on that row against four and five for the others, and it is a fair score.

Planned

Better JWT validation at the edge

The lua path works and the subrequest path works, and neither is as neat as a directive. Two out of five today.

Planned

Faster backend changes

Everything ends in a graceful reload. Reducing how often a reload is needed for the common cases would raise the ceiling for anybody whose backends change constantly.

Not planned

Things that are deliberately not going to happen

Packaged video streaming

HLS, DASH and f4f are modules compiled into the paid nginx binary. There is no way to add them from out here, and pretending otherwise would waste your time.

NTLM connection pinning

It keeps a connection pinned for the whole handshake and cannot be faked from outside the nginx process.

MQTT preread and filtering

Stream level protocol parsing that only exists in the paid build.

A request queue

Holding requests when every backend is busy. It is a genuinely useful feature and it is not something a manager outside the process can add.

Becoming a Kubernetes ingress controller

A different problem with good solutions already. This is for people running servers.

A paid tier

The whole point was that the commercial products cost more than a lot of good projects can spend. Adding a price would be an odd way to finish that thought.

Where it is weaker than it should be

From the comparison table in the product, these are the rows we score three or lower on and which are not on the not planned list above.

CapabilityUsBest of the othersWhat it means in practice
Somebody to call05There is no support contract and no number. This will not change.
Single sign on for proxied applications15Planned.
Request queueing15Not possible from out here.
Runtime key value store15Maps do the same lookup and need a reload to change. Fine for a blocklist you change hourly.
JWT validation at the proxy25Works, and is not as neat as a directive. Planned.
Live activity monitoring35The log parsing work above closes most of this.
Sticky sessions35Works. The first request is not sticky, and a pool change means a reload.
Changing upstreams without a reload35Reloads are graceful. The limit is the rate, not the mechanism.
Where the nginx binary comes from35Building from source means you own the upgrade cycle. It also buys post quantum TLS and the WAF.
DNS based failover35It works and it is honest about the limits. Kemp does more with it.
Backend processor and memory31Ahead of everybody and still only reads what your servers already publish.
Taking a backup, and where it goes35One file, taken by hand. No scheduling and no remote target yet.

The full table with the reasoning for every row is on the comparison page, and the same table ships inside the product.

Asking for something

The most persuasive thing is a description of what you are actually trying to do rather than the feature you think would solve it. Several things in the product exist in a different shape from the one first asked for, because the underlying problem had a better answer.

Two fresh servers is all it takes

Ubuntu 22.04 or newer, root access, and about twenty minutes. The installer does the rest and it is safe to run twice.